2014-03-03 94 views
1

我有一个switch语句返回true或false,并且if和else语句然后用它来做更多的验证。获取Json返回true或false

因为该值使用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 
} 

}); 

来代替它我的代码不会返回true或false从PHP和警报它只是从我的索引页面输出大量的HTML。

我做错了什么?

+1

为什么回显json_decode?它应该是json_encode –

+0

@abbiya谢谢,但我的'如果(数据== true)'不起作用。 – user3057514

回答

3

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

如果你使用这些值比较data你可能会得到更好的结果:

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

哦,是啊,你正在使用json_decode代替json_encode

+0

嗨,谢谢但我的if语句不起作用 – user3057514

+0

嗨,对不起,_“不起作用”_不是我可以使用的描述。 – Halcyon

+0

请看看我的问题编辑部分多数民众赞成 – user3057514

0

在你的PHP

echo json_decode($incorrect); 

替换为

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

然后在JavaScript解析这个JSON。

0

在你的PHP

echo json_decode($incorrect); 

替换为

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

然后在JavaScript解析这个JSON。

,做这样的jQuery的

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

没有工作是所有的HTML代码 – user3057514

+0

那些是什么。邮寄 –

0

你$正确的变量应该是这样的

$correct = ['isValid'=> true] 

一个数组,那么你编码

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

alert(data.isValid)