我正在编写一个在线井字棋游戏,我在 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数据库的表中。这是我的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 游戏时,第一次就可以了。但之后数据库中不会添加任何内容(但我仍然看到警报('成功'))。 最后,抱歉英语不好。
最佳答案
禁用缓存
并重试。
$.ajax({
type: "POST",
cache: false,
url: "gameProcess.php",
data: {
'ID' : path
},
dataType: "json",
success: function(){
alert('success');
},
});
关于php - 为什么我的页面中的 AJAX 请求只能运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17897155/