我正在编写一个可以更新数据库状态的脚本。
我的PHP代码是:
<?php
include ('../model/incentives.class.php');
$change = new Incentives;
$change_status = $change->change_status($_GET['id'], $_GET['status']);
?>
这有效,(我没有ajax测试过它)
我的ajax是:
function change_status(id, status) {
$.ajax({
type: 'GET',
url:('control/change_status.control.php'),
data: 'id='+id+'&status='+status,
cache: false,
})
window.location.reload(true);
}
我用
调用该函数<a href="javascript:change_function(1, 0);">Change Status</a>
但这不起作用。有谁知道如何解决这个问题?
THX!
答案 0 :(得分:0)
尝试将window.location.reload放入Ajax请求的成功回调中,如下所示:
$.ajax({
type: 'GET',
url:('control/change_status.control.php'),
data: 'id='+id+'&status='+status,
cache: false,
success:function(data){window.location.reload(true);}
});
否则,重新加载将在您进行Ajax调用的同时运行,并且由于重新加载,Ajax调用将被中断。
另外请确保您没有使用逗号完成Ajax属性。你有:
{
type: 'GET',
url:('control/change_status.control.php'),
data: 'id='+id+'&status='+status,
cache: false,
}
如果缓存属性后面没有其他属性,那么false之后的逗号不应该存在。
答案 1 :(得分:0)
当调用javascript中的函数<a href="javascript:change_function(1, 0);">Change Status</a>
时,您正在调用function change_status(id, status)
因此,只需将<a href="javascript:change_function(1, 0);">Change Status</a>
更改为“<a href="javascript:change_status(1, 0);">Change Status</a>
答案 2 :(得分:0)
我想替换下面的
data: 'id='+id+'&status='+status
与
data: { id: id, status: status}
将解决您的问题。
答案 3 :(得分:0)
好的,试试这个:
对于PHP:
<?php
header('Content-Type: application/json');
include ('../model/incentives.class.php');
$change = new Incentives;
$change_status = $change->change_status($_GET['id'], $_GET['status']);
if ($change_status) {
echo "true";
} else {
echo "false"
}
?>
JSON:
$.ajax({
type: 'GET',
url:('control/change_status.control.php'),
data: 'id='+id+'&status='+status,
cache: false,
success:function(data){
if (data == "true") {
alert('reload');
//when this message comes up, use the window.reload thingy
} else {
alert('no reload');
}
}
});