1

我正在编写一个可以更新数据库状态的脚本。

我的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>

但这行不通。有谁知道如何解决这个问题?

谢谢!

4

4 回答 4

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 后面加上逗号。

于 2013-08-20T09:36:21.680 回答
0

你在调用<a href="javascript:change_function(1, 0);">Change Status</a>javascript中的函数时调用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>

于 2013-08-20T09:37:18.617 回答
0

我想在下面替换

data: 'id='+id+'&status='+status

data: { id: id, status: status}

会解决你的问题。

于 2013-08-20T09:37:48.430 回答
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"
}
?>

杰森:

$.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');
           }
        }
});
于 2013-08-20T09:48:18.583 回答