我有一个switch语句,该语句返回true或false以及一个if and else语句,然后使用它进行更多验证。

因为该值正在使用ajax在输入字段上发送。我希望PHP返回true或false。

我已经尝试过使用JSON并尝试使用警报来测试返回的内容以及大量的html。

$a = isset($_POST['ccode']) ? $_POST['ccode'] : NULL;

    function isValid($Code) {
        switch ($Code){
            case "123":
            case "45545":
             return true;
        default:
            return false;
        }
    }

if(isValid($a)) {
        $correct = "correct";
       echo json_decode($correct);
    }
    else {
        $incorrect = "incorrect";
        echo json_decode($incorrect);
    }


AJAX

 $('#ccode').blur(function() {
    var code = $(this).val();

  $.ajax({
        type:'POST',
          url: 'index.php',
          dataType: 'json',
          data:{
            ccode:code
          },
          success: function(data) {
          alert(data);
          }
  });


当您看到警报(数据)时
我将替换为

if (data == false) {
//do this
}

});


我的代码没有从php返回true或false,在警报中它只是从索引页面输出了很多html。

我做错了什么?

最佳答案

您的输出不是truefalse,而是"correct""incorrect"

如果将data与这些值进行比较,则可能会得到更好的结果:

if (data === "correct") {
    // correct
} else {
    // incorrect
}


哦,是的,您使用的是json_decode而不是json_encode

10-02 20:49