Я отправляю некоторые данные Ajax в PHP-скрипт, который обрабатывает регистрацию. Я пытаюсь получить ответ от сервера, является ли вход действительным или нет (проверка в реальном времени). Я хочу, чтобы каждый вход имел свой собственный ответ, это означает, что если первый вход по-прежнему недействителен и кто-то помещает что-то недопустимое во второе поле ввода, первый ответ остается, и он также отправляет второй ответ.
То, что сейчас происходит, таково: первый ввод недействителен, я вижу ответ, но когда я перехожу к следующему полю ввода и помещаю что-то недопустимое в поле, первый ответ просто остается там (я проверил это с помощью консоли. войти в Chrome)
ОБНОВЛЕНИЕ: , чтобы привести пример, я вижу это: not a valid username!
, а затем я добавляю недопустимый адрес электронной почты в следующее поле, и я все еще вижу not a valid username!
.
Это мой код PHP:
if(isset($_POST['username']) && isset($_POST['email']) && isset($_POST['email2']) && isset($_POST['password'])
&& isset($_POST['firstname']) && isset($_POST['surname']) && isset($_POST['gender']) && isset($_POST['day'])
&& isset($_POST['month']) && isset($_POST['year']) ) {
$username = $_POST['username'];
$email = $_POST['email'];
$email2 = $_POST['email2'];
$password = $_POST['password'];
$firstname = $_POST['firstname'];
$surname = $_POST['surname'];
$gender = $_POST['gender'];
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
if(!preg_match("/^[a-z](?=[\w.]{3,19}$)\w*\.?\w*$/i",$username)){
echo "not a valid username.";
}
else if(filter_var($email,FILTER_VALIDATE_EMAIL)){
echo "OK!";
}
else if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
echo "not a valid email address";
}
else if(strcmp($email,$email2) != 0){
echo "emails are different.";
}
else if(strcmp($email,$email2) == 0){
echo "OK!";
}
else if(!preg_match("[a-zA-Z]*",$firstname)){
echo "Not a valid firstname.";
}
else if(preg_match("[a-zA-Z]*",$firstname)){
echo "OK!";
}
else if(!preg_match("[a-zA-Z]*",$surname)){
echo "not a valid surname.";
}
else if(preg_match("[a-zA-Z]*",$surname)){
echo "OK!";
}
}
и это код JQuery Ajax:
function handlePost() {
var username = $('#username').val();
var email = $('#email').val();
var email2 = $('#email2').val();
var password = $('#password').val();
var firstname = $('#firstname').val();
var surname = $('#surname').val();
var gender = $('#gender').val();
var day = $('#day').val();
var month = convertMonth($('#month').val())
var year = $('#year').val();
$.ajax({
type: "POST",
url: "handleRegister.php",
data: "username="+username+"&email="+email+"&email2="+email2+"&password="+password+"&firstname="
+firstname+"&surname="+surname+"&gender="+gender+"&day="+day+"&month="+month+"&year="+year,
success: function(resp){
// we have the response
//alert("Server said:\n '" + resp + "'");
console.log("Server said:\n '" + resp + "'")
},
error: function(e){
//alert('Error: ' + e);
console.log("Server said:\n '" + e + "'")
}
});
}
Я бы подумал, что я так и использую, если / еще здесь. Также я немного озадачен тем, как / когда использовать isset ($ _ POST ['submit']) в этом случае?
Заранее спасибо.