【发布时间】:2014-08-08 00:18:53
【问题描述】:
我的 AJAX 注册脚本无法正常工作,因为我有 responseText() 函数,在我的 PHP 部分中,我根据 if 条件回显 0 到 12(和 100)。
如果例如:用户名无效,它需要给出错误,它需要给出 echo 2 和 responseText 然后需要给出错误。
但它不会,它不会给我任何东西(没有 var_dump、没有控制台错误、没有 php_error_log 和没有 Apache 错误日志)。
我的 Jquery/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!');
}
}
});
}
return false;
})
});
(抱歉代码乱码)
我的 PHP 部分:
if(isset($_POST['action']) && $_POST['action'] == 'aanmelden')
{
$stringUsername = trim($_POST['username']);
$stringPassword = trim($_POST['password']);
$stringPassword2 = trim($_POST['password2']);
$stringEmail = trim($_POST['email']);
$stringTerms = trim($_POST['av']);
$bolean = false;
$stringsmallUser = strtolower($stringUsername);
$stmt = $mysqli->prepare("SELECT username FROM users WHERE username = ?");
$stmt->bind_param('s', $stringsmallUser);
$stmt->execute();
$intMatchu = $stmt->num_rows();
$stmt->close();
$stmt = $mysqli->prepare("SELECT email FROM users WHERE email = ?");
$stmt->bind_param('s', $stringEmail);
$stmt->execute();
$intMatche = $stmt->num_rows();
$stmt->close();
if(empty($stringUsername))
{
echo 0;
$bolean = true;
}
elseif(strlen($stringUsername) < 3 || strlen($stringUsername) > 16)
{
echo 1;
$bolean = true;
}
elseif(!ctype_alnum($stringUsername))
{
echo 2;
$bolean = true;
}
if(empty($stringPassword))
{
echo 3;
$bolean = true;
}
elseif(strlen($stringPassword) < 6 || strlen($stringPassword) > 16)
{
echo 4;
$bolean = true;
}
if(empty($stringPassword2))
{
echo 5;
$bolean = true;
}
elseif($stringPassword != $stringPassword2)
{
echo 6;
$bolean = true;
}
if(empty($stringEmail))
{
echo 7;
$bolean = true;
}
elseif(!filter_var($stringEmail, FILTER_VALIDATE_EMAIL))
{
echo 8;
$bolean = true;
}
if($intMatchu != 0)
{
echo 9;
$bolean = true;
}
elseif($intMatchu != 0)
{
echo 10;
$bolean = true;
}
if(empty($stringTerms))
{
echo 11;
$bolean = true;
}
elseif($stringTerms == 'avok')
{
echo 12;
$bolean = true;
}
if($bolean == false)
{
echo 100;
}
}
else
{
exit();
}
(查询有效,我已将它们放入 PHPmyAdmin 并且它们有效。)
提前感谢您! :-) 英语不是我的母语,所以我很抱歉我的语法错误。
【问题讨论】:
-
在问题中包含您的代码;链接腐烂。
-
您是否查看过网络选项卡中返回的值?
-
我感觉您的 php
echo正在发送一些空白空间,因此为什么您的 jquery/javascriptif条件检查数字不起作用。看$.trim() -
快速提示:了解
switch。 -
@RezaMO Whitespace 在关闭 php 标记之后会这样做。