1

嘿,我有这个脚本:

$.ajax({
    url: "checkAvailability.php",
    type: 'POST',
    dataType: "json",
    data: 'username=' + $(this).data('id'),
    success: function(data) {
            if (result == 1) {
                    $("#select-err").text(data.error ? data.error : "");
            }
            else {
                    $("#select-err").text(data.error ? data.error : "");
            }
    }
});

在 checkAvailability.php 中:

$availabilityChecker = new AvailabilityChecker($config);

if($availabilityChecker->check_availability($_POST['username'])) {
    echo json_encode(array("error" => "is ok"));
    $result = 1;
} else {
    echo json_encode(array("error" => "Wrong chose"));
    $result = 0;
} 

在测试时我发现这不是检查 php 子句是真还是假的正确方法,所以我需要你的帮助......谁能告诉我如何通过 jquery 来检查这个?问候和感谢!

更新:我改为:

$availabilityChecker = new AvailabilityChecker($config);

if($availabilityChecker->check_availability($_POST['username'])) {
    echo 1;
} else {
    echo 0;
}

和:

$.ajax({
    url: "checkAvailability.php",
    type: 'POST',
    dataType: "json",
    data: 'username=' + $(this).data('id'),
    success: function(data){
         if(data == 1){
             $("#select-err").text(data.error ? data.error : "is ok");
         }
         else{
             $("#select-err").text(data.error ? data.error : "not ok");
         }
    }
});

它有效,但是:如果数据 == 1,在我的页面上显示“1”,为什么以及如何解决这个问题?

4

3 回答 3

3

而不是这样做

if (result == 1) {

做这个

if (data.result == 1) {

在您的成功回调 javascript 文件中。

然后在您的 PHP 文件中,而不是这些:

echo json_encode(array("error" => "is ok"));
echo json_encode(array("error" => "Wrong chose"));

改为执行以下操作:

echo json_encode(array("error" => "is ok", "result"=>1));
echo json_encode(array("error" => "Wrong chose", "result"=>0));

我所做的是将结果作为属性包含在来自 AJAX 调用的 JSON 中。因此,您在 JSON 中还拥有 result 属性,而不是只有 error 属性。

于 2013-11-24T14:34:39.370 回答
2

在 php 中改成这个

$availabilityChecker = new AvailabilityChecker($config);

if($availabilityChecker->check_availability($_POST['username'])) {
  echo json_encode(array("error" => "is ok" , "result"=>1));

} else {

  echo json_encode(array("error" => "Wrong chose" , "result"=>0));
} 

在jQuery中

检查为

if(data.result==1){
  // do the same
}else{
}
于 2013-11-24T14:19:03.353 回答
0

不要json_encode(array("error" => "is ok"));在 php in if-elsestatement 中回显,在两种情况下都回显结果。在你 ajaxsuccess回调时,它将返回你的 php 页面上的所有内容,即result可能是 1 或 0。所以检查是否data==1data==0而不是result.

于 2013-11-24T14:19:01.817 回答