我有一个返回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。
我做错了什么?
答案 0 :(得分:3)
您的输出不是true
或false
,而是"correct"
或"incorrect"
。
如果您将data
与这些值进行比较,您可能会获得更好的结果:
if (data === "correct") {
// correct
} else {
// incorrect
}
哦,是的,你正在使用json_decode
代替json_encode
。
答案 1 :(得分:0)
替换你的PHP
echo json_decode($incorrect);
到
echo json_enecode(array("success"=>$incorrect));
然后在javascript中解析这个json。
答案 2 :(得分:0)
替换你的PHP
echo json_decode($incorrect);
到
echo json_encode(array("error"=>false, "message"=>$incorrect));
然后在javascript中解析这个json。
并在jquery
中这样做if (data.error == false) {
//do this
}
答案 3 :(得分:0)
你的$ correct变量应该是这样的数组
$correct = ['isValid'=> true]
然后你编码那个
在您的成功jquery回调函数中,您可以调试它以检查结果值
alert(data.isValid)