亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將全局變量傳遞給ajax函數,發布到php,保存到數據庫

將全局變量傳遞給ajax函數,發布到php,保存到數據庫

慕沐林林 2023-07-14 15:37:31
我有一個全局變量,我想將其傳遞到 Ajax 中。Ajax 對我來說非常陌生,我已經做了一些研究和測試,但我陷入困境。我不知道第一個問題的變量是否被傳遞到 Ajax 函數中。我對 Json 并不是很感興趣,但是我也嘗試過,但它也不正確。我不希望從 php 獲得返回頁面的響應,該頁面正在使用現有的 js 和 html 進行更新。我的第二個困境是我的 php 文件在應該激活的時候被激活,但是它在數據庫字段中發布了 0。這里的另一個問題是,它將所有用戶的資金更新到同一個 0 條目,因此其 isset 的某些方式尚未正確設置。我相信我的bindValue編碼正確,我真的不確定是否需要分解到php頁面的POST,如果是這樣,如果我必須使用該值,我該怎么做?另外,當我添加 WHERE userid = userid 來 UPDATE 時,游戲完全停止。任何幫助,即使是一個小修復,都將不勝感激。這是文件。預先感謝您幫助我了解 Ajax。游戲.jsmoney = 2000;function updateMoney() {   if ( pot <= 0 ){    if ( money <= 0 ){    document.getElementById("aaa").innerHTML = "Lost? Here's A Loan !!!";      money = 1000 ;}  }   document.getElementById("money").innerHTML = money;  }  function enterWager(){  // doMath function inside herevar x=parseInt(document.getElementById('textbox').value,10);  // Displays the textbox for placing a wager   if (money <= 0) {      x = 0 ; }document.getElementById("bet").innerHTML = parseInt(x,10);if(isNaN(x)||x < 1 || x > 250){document.getElementById("aaa").innerHTML = "You're Out Of Money!!!";}    document.getElementById("textbox").style.display = 'none';    document.getElementById("button").style.display = 'none';        function doMath() {  //   PVPCoinTransaction()   and   transferCoins()  are off right now. Plus 4 tests failed and are also off at end of function.   if (pot == 0){       countWagers = 0;   }      if (money <= 0) {      money = 0 ; }   if (x > money) {      x = money ; }  money = money - x;  pot = pot + x;                 }doMath()function updateDatabase() {   // POST test not working//    $.ajax({//     url: 'php/credits/credit.php', // //     type: "POST",//     dataType:'json', // add json datatype to get json//     data: ({money: 145}),  Do I put div here and how?//     success: function(data){//   I dont need to return anything, just update db field!//     }//}); 
查看完整描述

3 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

money您的服務器需要在您的數組中調用一個密鑰$_POST。這意味著為了正確接收數據,您還需要使用密鑰發送數據。在 PHP 中,該數據看起來像一個關聯數組,而在 JavaScript 中,該數據看起來像一個對象,都具有鍵和值。


完成鍵值結構的最簡單方法是使用結構創建字符串key=value。這類似于表單將數據發送到服務器的方式,并且無需修改后端即可接收數據。


var package = `money=${money}`;

沒有什么問題XMLHttpRequest(有ActiveXObject;)),我建議學習Fetch API。它是向服務器發出 HTTP 請求或從服務器發出 HTTP 請求的更新和簡化規范。您已表示不需要接收響應,這意味著發送數據的基本 POST 請求如下例所示。


fetch('../php/credits/credit.php', {

  method: 'POST',

  body: package

});

第一個參數是 URL,第二個參數是選項對象。該method屬性不言而喻。該body屬性是您要發送的數據(相當于xml.send(package);)。


現在,如果您的 URL 正確,則應將包含正確數據的 HTTP 請求發送到您的服務器。


// $_POST should have received data, and because you've send it as a

// key-value it will be represented as an associative array with, 

// you guessed it, keys and values.

$money = $_POST[ 'money' ];


// $money will always be a string in this form, so you'll 

// need to convert it if you need it to be a number.

$money_as_number = intval( $money );

要測試這是否有效,請打開network瀏覽器開發人員工具中的選項卡。您可以檢查是否發生 HTTP 請求并檢查是否發送了正確的負載。


查看完整回答
反對 回復 2023-07-14
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

好吧,這就是控制臺中的工作原理......


function updateDatabase() { 


var package = money;

console.log(package);

fetch('../php/credits/credit.php', {

  method: 'POST',

     headers: {

      'Accept': 'application/json',

      'Content-Type': 'application/json'

    },

  body: JSON.stringify(package)


});

}

控制臺日志 = 1975 game.js:1608:9


我現在只需要通過我的 php 將 1975 年的值發布到數據庫。它仍然將 0 發布到我的數據庫中。


查看完整回答
反對 回復 2023-07-14
?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

我解決了。感謝您讓我走上正確的道路!


<?php 

session_start();

if (isset($_SESSION['userid'])) {

 $money = json_decode(file_get_contents('php://input'), true);

 $money_as_number = intval( $money );

 $userid = $_SESSION['userid'];

try {

$db = DB();


$stmt = $db->prepare("UPDATE usersystem SET money=:money WHERE userid=:userid");

$stmt->bindValue(':money', $money_as_number, PDO::PARAM_INT);

$stmt->bindValue(':userid', $userid, PDO::PARAM_STR);

$stmt->execute();


}

    catch(PDOException $e)

    {

        $db = null;  

        echo $e->getMessage();  

    }

    }

    ?>


查看完整回答
反對 回復 2023-07-14
  • 3 回答
  • 0 關注
  • 191 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號