使用jquery检查php-clause是真还是假

时间:2013-11-24 14:14:43

标签: php jquery clause

嘿,我有这个剧本:

$.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”,为什么以及如何解决这个问题?

3 个答案:

答案 0 :(得分: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{
}

答案 1 :(得分:2)

而不是这样做

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中的属性包含在内。因此,您不仅拥有error属性,而且还拥有JSON中的result属性。

答案 2 :(得分:0)

不要在json_encode(array("error" => "is ok"));语句中回显php中的if-else,只是在两种情况下都回显结果。 在你的success回调中ajax它,它将返回你的php页面上的所有内容,即result,可能是1或0.请检查是data==1还是data==0 result