以下代碼的目的是通過 xml 檔案查看用戶輸入的電子郵件或登錄名是否被占用,我想獲得 JSON 回應。這是我的 AJAX 代碼:
$.ajax({
type: 'post',
dataType: 'json',
url: 'create_user.php',
data: $('form').serialize(),
success: function (response) {
if(response['error'] === 'login'){
alert('This login is taken');
} else if(response['error'] === 'email') {
alert('This email is taken');
} else {
location.href = 'index.php';
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
這是“create_user.php”:
for($i = 0;$i < $size;$i ) {
if($users->user[$i]->login == $_POST['login']) {
echo json_encode(array('error' => 'login'));
$failed = true;
break;
}
}
for($i = 0;$i < $size;$i ) {
if($users->user[$i]->email == $_POST['mail']) {
echo json_encode(array('error' => 'email'));
$failed = true;
break;
}
}
echo json_encode(array('a' => 'b'));
if(!$failed) {
echo json_encode(array('error' => 'no'));
}
uj5u.com熱心網友回復:
看來您沒有阻止 PHP 代碼寫入多個 JSON 資料。
在您的代碼中,您首先檢查重復登錄,如果是,則發送輸出資料,然后再次檢查電子郵件,如果它也是重復的,您的輸出將類似于
{"error":"login"}{"error":"email"}{"a":"b"}
這顯然不是有效的 json 格式。
試試下面的代碼
for($i = 0;$i < $size;$i ) {
if($users->user[$i]->login == $_POST['login']) {
echo json_encode(array('error' => 'login'));
$failed = true;
exit;
}
}
for($i = 0;$i < $size;$i ) {
if($users->user[$i]->email == $_POST['mail']) {
echo json_encode(array('error' => 'email'));
$failed = true;
exit;
}
}
echo json_encode(array('error' => 'no'));
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/534638.html
