将全局变量传递给ajax函数,发布到php,保存到数据库

我有一个全局变量,我想将其传递到 Ajax 中。Ajax 对我来说非常陌生,我已经做了一些研究和测试,但我陷入困境。我不知道第一个问题的变量是否被传递到 Ajax 函数中。

我对 Json 并不是很感兴趣,但是我也尝试过,但它也不正确。

我不希望从 php 获得返回页面的响应,该页面正在使用现有的 js 和 html 进行更新。

我的第二个困境是我的 php 文件在应该激活的时候被激活,但是它在数据库字段中发布了 0。这里的另一个问题是,它将所有用户的资金更新到同一个 0 条目,因此其 isset 的某些方式尚未正确设置。我相信我的bindValue编码正确,我真的不确定是否需要分解到php页面的POST,如果是这样,如果我必须使用该值,我该怎么做?另外,当我添加 WHERE userid = userid 来 UPDATE 时,游戏完全停止。

任何帮助,即使是一个小修复,都将不胜感激。

这是文件。预先感谢您帮助我了解 Ajax。

游戏.js

money = 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 here

var 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!

//     }

//}); 

慕沐林林
浏览 143回答 3
3回答

Smart猫小萌

money您的服务器需要在您的数组中调用一个密钥$_POST。这意味着为了正确接收数据,您还需要使用密钥发送数据。在 PHP 中,该数据看起来像一个关联数组,而在 JavaScript 中,该数据看起来像一个对象,都具有键和值。完成键值结构的最简单方法是使用结构创建字符串key=value。这类似于表单将数据发送到服务器的方式,并且无需修改后端即可接收数据。var package = `money=${money}`;没有什么问题XMLHttpRequest(有ActiveXObject;)),我建议学习Fetch API。它是向服务器发出 HTTP 请求或从服务器发出 HTTP 请求的更新和简化规范。您已表示不需要接收响应,这意味着发送数据的基本 POST 请求如下例所示。fetch('../php/credits/credit.php', {&nbsp; method: 'POST',&nbsp; 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,&nbsp;// you guessed it, keys and values.$money = $_POST[ 'money' ];// $money will always be a string in this form, so you'll&nbsp;// need to convert it if you need it to be a number.$money_as_number = intval( $money );要测试这是否有效,请打开network浏览器开发人员工具中的选项卡。您可以检查是否发生 HTTP 请求并检查是否发送了正确的负载。

慕尼黑8549860

好吧,这就是控制台中的工作原理......function updateDatabase() {&nbsp;var package = money;console.log(package);fetch('../php/credits/credit.php', {&nbsp; method: 'POST',&nbsp; &nbsp; &nbsp;headers: {&nbsp; &nbsp; &nbsp; 'Accept': 'application/json',&nbsp; &nbsp; &nbsp; 'Content-Type': 'application/json'&nbsp; &nbsp; },&nbsp; body: JSON.stringify(package)});}控制台日志 = 1975 game.js:1608:9我现在只需要通过我的 php 将 1975 年的值发布到数据库。它仍然将 0 发布到我的数据库中。

慕侠2389804

我解决了。感谢您让我走上正确的道路!<?php&nbsp;session_start();if (isset($_SESSION['userid'])) {&nbsp;$money = json_decode(file_get_contents('php://input'), true);&nbsp;$money_as_number = intval( $money );&nbsp;$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();}&nbsp; &nbsp; catch(PDOException $e)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; $db = null;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; echo $e->getMessage();&nbsp;&nbsp;&nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; ?>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript