使用Ajax获取javascript变量的值?

时间:2014-03-01 20:50:55

标签: javascript php jquery ajax

很长时间stackoverflow用户,但第一次海报!我最近做了一个非常简单的基于浏览器的小游戏,当我说简单时,我不能强调这一点。

无论如何,整个游戏逻辑都在一个小的javascript文件中。在该文件中,我有一个名为value的变量,它包含玩家得分。

允许用户在游戏过程中的任何给定时间单击“提交”,然后使用php脚本访问和编写他们的用户名,并希望很快将他们的分数添加到我的数据库中。

我遇到的问题我知道很多新手Ajax已经有了,我如何将javascript变量值的值发送到我的php页面,该页面处理将变量发送到我的数据库?

我已经阅读了相当多的内容并且似乎无法使其正常工作。因此,从头开始,假设我有一个功能正常的javascript文件,其值变量包含分数。如何使用ajax将分数发送到php文件?我在哪里放置Ajax代码?

谢谢stackoverflow!另外我已经知道javascript驻留在客户端,php运行在服务器端,我只想知道如何正确地将分数发送到php文件,就是这样!再次感谢stackoverflow!

编辑:因为我似乎在投票,这是我所拥有的,但它不起作用:

我的Ajax:

function ajaxCall() {alert("To AJAX: the value is: " + value);

    $.ajax
    (   {
            type: "POST",
            url: "handler.php",
            data: {'value' : value}, 
            success: function(response)
            { alert("The value was passed!")}
        }
    );};

AjaxCall的();

handler.php的一部分:

if(isset($_POST['value']))

{
$value = $_POST['value']."";
var_dump($value);
}

var_dump($_POST['value']);

2 个答案:

答案 0 :(得分:0)

只需使用它,

你的ajax.js应该包含这个。

$(document).ready(function() {
   $("#submitscore").click(function(event){
     var user = $('#username').val();
     var value = document.getElementById('yourscore').innerHTML;
      $.post( 
         "submitscore.php",
         { username: user, score: value }
           );
  });
});

您的其他文件应该有一个ID为“submitscore”的按钮

Hi, <input type="text" id="username" size="12"><br/>
Your Score is : <span id="yourscore">5000</span><br/>
<button id="submitscore">Submit Score</button>

在该提交文件中,使用此:

if(isset($_REQUEST['score'])||isset($_REQUEST['username']))
{
$username = $_REQUEST['username'];
$value = $_REQUEST['score'];
var_dump($value);
//Your Insertion/Updation Databse Script
}

答案 1 :(得分:0)

定义一个设置变量的函数。请务必事先定义变量,以便可以在函数

之外访问它
function ajaxCall() {
    alert("To AJAX: the value is: " + value);
    var response_value; // define here or you won't be able to access it outside of success: f()
    $.ajax({
        type: "POST",
        url: "handler.php",
        data: {'value' : value}, 
        success: function(response) {
            response_value = response;
            }
        }
    );
}

另请注意function() {}之后不要使用分号。 Sublime Text会这样做,但语法仍然不正确。

编辑:我建议您更改PHP文件以直接输出JSON文件。 这样做时需要考虑的事项:

  • 使用header('Content-Type: application/json; charset=utf-8');
  • 设置内容类型
  • 生成PHP数组或单个变量(例如$result_array
  • 使用PHP将其编码为utf-8 JSON:$json_string = json_encode($result_array); $json_string = utf8_encode($json_string);
  • 然后只需echo($json_string);
  • 告诉jQuery您正在使用JSON:将dataType: json添加到$ .ajax()config