Я пытаюсь сделать проверку jquery на форме, все работает над проверкой входных данных, но когда все правильно, оно не "идет дальше" и ничего не возвращает.
function validateFields() {
var fname = $("input#fname").val();
if (fname == "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
$( "#Fejl" ).html("<p class=\"c\">First name missing!</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
var lname = $("input#lname").val();
if (lname == "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
$( "#Fejl" ).html("<p class=\"c\">Last name missing!</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
var femail = $("input#femail").val();
if (femail == "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
$( "#Fejl" ).html("<p class=\"c\">Email missing!</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
var lemail = $("input#lemail").val();
if (lemail == "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
$( "#Fejl" ).html("<p class=\"c\">Email missing!</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
var cemail = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
if (femail !== "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
if(!cemail.test(femail)){
$( "#Fejl" ).html("<p class=\"c\">Your email is invalid.</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
}
var fpassword = $("input#fpassword").val();
if (fpassword == "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
$( "#Fejl" ).html("<p class=\"c\">Password missing!</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
var lpassword = $("input#lpassword").val();
if (lpassword == "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
$( "#Fejl" ).html("<p class=\"c\">Confirm password!</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
var datastring = 'fname='+ fname +'&lname='+ lname +'&email='+ femail +'&password='+ fpassword;
$.ajax({
type: "POST",
url: "opret.php",
data: dataString,
success: function() {
if(responseText == 1) {
$( "#Fejl" ).html("<p class=\"c\">virker</p>");
} else { // else blank response
$( "#Fejl" ).html("<p class=\"c\">virker2</p>");
}
}
});
return false;
};
$('form#opret').on('submit',function(e) {
e.preventDefault();
var success=validateFields();
});
И я не знаю, что нужно изменить, я много пробовал, и мой опыт останавливается, я понятия не имею, что это такое.
я бы хотел, чтобы кто-нибудь любезно объяснил мне, что такое ошибка, так что я узнаю ее :-) php code:
1<?php
include("config.php");
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$email=$_POST['femail'];
$password=$_POST['fpassword'];
$memails = mysql_result(mysql_query("SELECT COUNT(*) FROM Users WHERE email = '$email'"),0); //check for email exist
if($memails < 1){
echo "1";
} else {
echo "2";
}
?>
Вы пытаетесь отправить свои аргументы в виде каких-то данных. Вам нужно либо отправить строку запроса так...
$.ajax({
type: "POST",
url: 'opret.php' + '?' + dataString,
success: function(responseText) {
if(responseText == "1") {
$( "#Fejl" ).html("<p class=\"c\">virker</p>");
} else { // else blank response
$( "#Fejl" ).html("<p class=\"c\">virker2</p>");
}
}
});
... и пусть ваш PHP и итерации через ваш $ _POST, чтобы получить переменные, или отправить ваши данные как JSON, а затем декодировать его на объект в вашем PHP-скрипте, например...
var data = {
'fname': fname,
'lname': lname,
'email': femail,
'password': fpassword
};
$.ajax({
type: "POST",
dataType: 'json',
data: data,
url: "opret.php",
success: function(responseText) {
if(responseText == "1") {
$( "#Fejl" ).html("<p class=\"c\">virker</p>");
} else { // else blank response
$( "#Fejl" ).html("<p class=\"c\">virker2</p>");
}
}
});
EDIT: Исправлено добавление строки запроса.
EDIT 2: Обновлен для обработки фактических возвратов PHP.
?
обозначает строку запроса и исправит мой ответ. Попробуйте еще раз и посмотрите, что вы получите обратно.