$.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”,为什么以及如何解决这个问题?
答案 0 :(得分:2)
更改为
$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
。