为什么我的页面中的AJAX请求只运行一次

时间:2013-07-27 11:17:04

标签: php javascript html mysql ajax

我正在写一个在线tictactoe游戏,我有一个javascript函数,检查如果在屏幕中点击的某些不是X或O然后用X或O标记它,然后更新数据库在哪里点击。这是我在play.php页面中的javascript代码(这是在),其中用isEmpty函数检查。 path是检测tictactoe中哪些单元格被点击的变量(从1到9):

....
if (isEmpty(xBoard, oBoard, bit)) {
    path.push(y*3+x+1);
    alert(path);
    markBit(bit, playerXO);
    $.ajax({
           type: "POST",
           url: "gameProcess.php",
           data: {
                    'ID' : path
                    },
           dataType: "json",

           success: function(){
                alert('success');

           },
    });
....

我使用ajax用PHP(gameProcess.php)更新数据库中的内容并发送'ID'值以写入mysql Database的表。这是我的gameProcess.php代码:

<?php

function post($key) {
if (isset($_POST[$key]))
    return $_POST[$key];
return false;
}

// setup the database connect
$cxn = mysql_connect('localhost', 'root', 'Mazda1428');
if (!$cxn)
exit;
mysql_select_db('irgc', $cxn);

// check if we can get hold of the form field
if (!post('ID'))
exit;

// let make sure we escape the data
$val = mysql_real_escape_string(post('ID'), $cxn);

// lets setup our insert query
$sql = "UPDATE  game SET sequence=".$val." WHERE id = 2;";

// lets run our query
$result = mysql_query($sql, $cxn);

// setup our response "object"
$resp = new stdClass();
$resp->success = false;
if($result) {
$resp->success = true;
}

print json_encode($resp);
?>

但是当我打开浏览器并进入play.php并点击tictactoe游戏时,第一次就可以了。但之后没有东西会添加到DB(但我仍然看到警报('成功'))。 最后,抱歉英语不好。

2 个答案:

答案 0 :(得分:0)

停用cache并重试。

$.ajax({
       type: "POST",
       cache: false,

       url: "gameProcess.php",
       data: {
                'ID' : path
                },
       dataType: "json",

       success: function(){
            alert('success');

       },
});

答案 1 :(得分:0)

也许你应该添加一个随机的URL地址参数