【问题标题】:Getting Json returns true or false获取 Json 返回 true 或 false
【发布时间】:2014-03-03 13:07:13
【问题描述】:

我有一个返回 true 或 false 的 switch 语句和一个 if 和 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。

我做错了什么?

【问题讨论】:

  • 为什么要回显 json_decode ?它应该是 json_encode
  • @abbiya 谢谢,但我的if (data == true) 不工作。

标签: php jquery ajax json


【解决方案1】:

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

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

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

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

【讨论】:

  • 嗨,抱歉,“不起作用” 不是我可以使用的描述。
【解决方案2】:

在你的 PHP 中替换

echo json_decode($incorrect);

echo json_enecode(array("success"=>$incorrect));

然后在javascript中解析这个json。

【讨论】:

    【解决方案3】:

    你的 $correct 变量应该是这样的数组

    $correct = ['isValid'=> true]
    

    然后你对其进行编码

    在你的成功jquery回调函数中,你可以调试它来检查结果值

    alert(data.isValid)
    

    【讨论】:

      【解决方案4】:

      在你的 PHP 中替换

      echo json_decode($incorrect);
      

      echo json_encode(array("error"=>false, "message"=>$incorrect));
      

      然后在javascript中解析这个json。

      在 jquery 中这样做

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

      【讨论】:

      • 那些是什么。发帖
      猜你喜欢
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 2012-02-21
      • 1970-01-01
      相关资源
      最近更新 更多