0

我正在尝试通过不起作用的 ajax 更新一个字段。下面是代码

查询:

<script type="text/javascript">
    function changeStatus(changeStatus,userId) {
        var data="changeStatus="+changeStatus+"&userId="+userId;
        $.ajax({
            type:'GET',
            url:'myfunctions.php',
            data:data,
            success:function() {
                alert('Updated');
            }
        });
    }
</script>

php:

<?php
function changeStatus($changeStatus,$userId){
    $userId=$_GET['userId'];
    $userStatus=$_GET['userStatus'];
    switch($userStatus) {
        case "1":
            $changeStatus=0;
            break;
        case "0":
            $changeStatus=1;
            break;
        default:
            $changeStatus="";
    }
    $Query="UPDATE blog_users SET blog_user_status='$changeStatus' WHERE                 blog_user_id='$userId'";
    $Result=mysql_query($Query);
}

if(isset($_GET['userId']) && isset($_GET['userStatus'])) {
    changeStatus($changeStatus,$userId);
}
?>

这是我调用函数的方式:

<a href="#" onclick="changeStatus($changeStatus,$userId)"><?php echo $action; ?></a>

只是为了让我知道我只在 php 中尝试了这个,方法是通过 href 传递获取值。它正在工作......

4

2 回答 2

0
<a href="#" onclick="changeStatus(<?php echo $changeStatus; ?>,<?php echo $userId; ?>)"><?php echo $action; ?></a>

试试看

于 2013-06-23T03:29:38.017 回答
0

所以你没有使用正确的 get 变量。在 javascript 中,您将 get 变量设置为changeStatususerId

var data="changeStatus="+changeStatus+"&userId="+userId;

然而,在你的 PHP 中,你得到userIduserStatus

$userId=$_GET['userId'];
$userStatus=$_GET['userStatus'];

所以$userStatus永远不会被设置,因为它应该$_GET['userStatus']

由于它是空的,您的查询将始终如下所示:

"UPDATE blog_users SET blog_user_status='' WHERE blog_user_id='$userId'"; 
于 2013-06-23T04:01:03.573 回答