AJAX Post - 一个变量未正确发送

时间:2011-09-08 17:37:23

标签: php ajax

我有四个变量,我试图通过AJAX传递给同一页面上的某些PHP处理:newJudgeName,newJudgeSection,newJudgeStatus和originalJudgeName。成功函数回显它们并且它们是正确的值,它只是我的PHP没有获取newJudgeStatus变量。我已经在AJAX请求的数据行中使用newJudgeName切换newJudgeStatus,然后将值发送得很好(我可以在Judge Name下的数据库中看到它)...只有当它在ajax请求的原始位置时才会发送...它不起作用。我是Ajax的新手。任何帮助将不胜感激。

AJAX:

    $.ajax({   
        type: "POST",   
        url: "test.php",   
        data: 'newJudgeName=' + newJudgeName + '&newJudgeSection=' + newJudgeSection + '&newJudgeStatus =' + newJudgeStatus + '&originalJudgeName=' + originalJudgeName,
        success: function(){
            alert('newJudgeName=' + newJudgeName + '&newJudgeSection=' + newJudgeSection + '&newJudgeStatus =' + newJudgeStatus +'&originalJudgeName=' + originalJudgeName);
        }
    });

PHP:

if(isset($_POST['newJudgeName'])){
        $newJudgeName = $_POST['newJudgeName'];
        $newJudgeSection = $_POST['newJudgeSection'];
        $newJudgeStatus = $_POST['newJudgeStatus'];
        $originalJudgeName = $_POST['originalJudgeName'];
        $judgeID = judgeNametoID($originalJudgeName);
        $con = mysql_connect("-","-","-");
        if (!$con)
          {
          die('Could not connect: ' . mysql_error());
          }
        else {
            // connected to database successfully
        }
                    mysql_select_db("cm", $con);
        $query = ("UPDATE `casemanagers`.`judges` SET `Name`='$newJudgeName' , `Section`='$newJudgeSection', `Active`='$newJudgeStatus' WHERE `judgeID`='$judgeID';");
        $result = mysql_query($query);
        mysql_close($con);
}

3 个答案:

答案 0 :(得分:5)

数据字符串中有错误的空格:

'&newJudgeStatus =' + newJudgeStatus +
---------------^^^^

// Should be
'&newJudgeStatus=' + newJudgeStatus +

答案 1 :(得分:1)

您应该以这种方式发送数据:

$.ajax({   
    type: "POST",   
    url: "test.php",   
    data: {
        'newJudgeName' : newJudgeName,
        'newJudgeSection' : newJudgeSection,
        'newJudgeStatus' : newJudgeStatus,
        'originalJudgeName' : originalJudgeName
    },
    success: function(){
        alert('newJudgeName=' + newJudgeName + '&newJudgeSection=' + newJudgeSection + '&newJudgeStatus =' + newJudgeStatus +'&originalJudgeName=' + originalJudgeName);
    }
});

答案 2 :(得分:1)

我建议不要手动处理,而是将所有这些放在表格中。使用以下代码发送数据:

$('#id_of_the_form').serialize();

而不是马车:

newJudgeName=' + newJudgeName + '&newJudgeSection=' + newJudgeSection + '&newJudgeStatus =' + newJudgeStatus +'&originalJudgeName=' + originalJudgeName ...

请参阅http://api.jquery.com/serialize/

相关问题