我的控制台日志中的空白区域来自我对AJAX的响应。我得到的回应是:“[1,4,6,12]”而不是我得到:“[1,4,6,12]”。 我已经尝试了所有内容......使用trim函数(在PHP和JS中)删除每个PHP关闭标记...
我的PHP代码(部分不是全部):
$errors = array();
if (empty($stringUsername)) {
$errors[] = 0;
$bolean = true;
}
if (strlen($stringUsername) < 3 || strlen($stringUsername) > 16) {
$errors[] = 1;
$bolean = true;
}
if (!ctype_alnum($stringUsername)) {
$errors[] = 2;
$bolean = true;
}
if (empty($stringPassword)) {
$errors[] = 3;
$bolean = true;
}
if (strlen($stringPassword) < 6 || strlen($stringPassword) > 16) {
$errors[] = 4;
$bolean = true;
}
if (empty($stringPassword2)) {
$errors[] = 5;
$bolean = true;
}
if ($stringPassword != $stringPassword2) {
$errors[] = 6;
$bolean = true;
}
if (empty($stringEmail)) {
$errors[] = 7;
$bolean = true;
}
if (!filter_var($stringEmail, FILTER_VALIDATE_EMAIL)) {
$errors[] = 8;
$bolean = true;
}
if ($intMatchu != 0) {
$errors[] = 9;
$bolean = true;
}
if ($intMatchu != 0) {
$errors[] = 10;
$bolean = true;
}
if (empty($stringTerms)) {
$errors[] = 11;
$bolean = true;
}
if ($stringTerms == 'avok') {
$errors[] = 12;
$bolean = true;
}
if ($bolean == false) {
$errors[] = 100;
}
echo json_encode($errors);
我的JS / AJAX部分(不是全部):
if (username.val() != '' && password.val() != '' && password2.val() != '' && email.val() != '' && terms.val != '') {
var UrlToPass = 'action=aanmelden&username=' + username.val() + '&password=' + password.val() + '&password2=' + password2.val() + '&email=' + email.val() + '&av=' + terms.val();
$.ajax({
type: 'POST',
data: UrlToPass,
url: '/outgame/register.php',
success: function (responseText) {
if (responseText == 0) {
$.notify('U hebt geen gebruikersnaam opgegeven!', 'error');
} else if (responseText == 1) {
$.notify('Uw gebruikersnaam moet meer dan 3 en minder dan 16 karakters bevatten!', 'error');
} else if (responseText == 2) {
$.notify('Uw gebruikersnaam bevat ongeldige tekens!', 'error');
} else if (responseText == 3) {
$.notify('U hebt geen wachtwoord opgegeven!', 'error');
} else if (responseText == 4) {
$.notify('Uw wachtwoord moet meer dan 6 en minder dan 16 karakters bevatten!', 'error');
} else if (responseText == 5) {
$.notify('U hebt geen tweede wachtwoord opgegeven!', 'error');
} else if (responseText == 6) {
$.notify('De wachtwoorden komen niet met elkaar overeen!', 'error');
} else if (responseText == 7) {
$.notify('U hebt geen mail adres opgegeven!', 'error');
} else if (responseText == 8) {
$.notify('Uw mail adres is niet geldig!', 'error');
} else if (responseText == 9) {
$.notify('Uw gebruikersnaam is al ingebruik!', 'error');
} else if (responseText == 10) {
$.notify('Er is al een account aagemaakt met dit email adres!', 'error');
} else if (responseText == 11) {
$.notify('U hebt onze AV niet geaccepteerd!', 'error');
} else if (responseText == 12) {
$.notify('Uw invoer voor onze AV is ongeldig!', 'error');
} else if (responseText == 100) {
$.notify('U bent succesvol geregistreerd', 'success');
} else {
alert('error!');
}
console.log(responseText);
}
提前谢谢!我很抱歉我的语法或拼写错误,英语不是我的母语: - )
答案 0 :(得分:2)
您回显JSON编码数组,然后尝试将其与整数值进行比较。这永远不会奏效。当您使用$.ajax
时,Response是一个String,因此您需要通过以下方式将其解析为JSON值:
$.parseJSON("[1,2,3,4] ") // Returns [1, 2, 3, 4]
在JavaScript中有一个有效的数组后,你想看看你的错误代码是否在那个数组中,如下所示:
[1, 2, 3, 4].indexOf(3) // returns 2
虽然不存在的错误如下所示:
[1, 2, 3, 4].indexOf(5) // returns -1