我在不同的浏览器中遇到ajax post请求的奇怪问题。我的代码验证表单字段,工作正常。当我按下提交时,将触发php请求并执行代码。奇怪的是我仍然从ajax而不是成功消息中获取错误消息。
在safari中,验证工作正常,但php不会执行。我认为我的jQuery有问题,但我没有看到它。
这是我的jQuery代码:
$(document).ready(function(){
$("#submit").click(function(){
var Voornaam = $("#Voornaam").val();
var Achternaam = $("#Achternaam").val();
var Straat = $("#Straat").val();
var Huisnummer = $("#Huisnummer").val();
var Postcode = $("#Postcode").val();
var Woonplaats = $("#Woonplaats").val();
var Telefoon = $("#Telefoon").val();
var Naamrekeninghouder = $("#Naamrekeninghouder").val();
var Rekeningnummer = $("#Rekeningnummer").val();
var Email = $("#Emailadres").val();
var Username = $("#Username").val();
var Password = $("#Wachtwoord").val();
$(".errormsgbox").html("");
if( (Voornaam == "") ) {
$(".errormsgbox").append("Vul A.U.B. uw voornaam in.").fadeIn("Slow");
}
else if ( (Achternaam == "") ){
$(".errormsgbox").append(" * Vul A.U.B. uw achternaam in.").fadeIn("Slow");
}
else if( (Straat == "") ){
$(".errormsgbox").append(" * Vul A.U.B. uw straat in .").fadeIn("Slow");
}
else if( (Huisnummer == "") ){
$(".errormsgbox").append(" * Vul A.U.B. uw huisnummer in .").fadeIn("Slow");
}
else if( (Postcode == "") ){
$(".errormsgbox").append(" * Vul A.U.B. uw postcode in .").fadeIn("Slow");
}
else if( (Woonplaats == "") ){
$(".errormsgbox").append(" * Vul A.U.B. uw woonplaats in .").fadeIn("Slow");
}
else if( (Telefoon == "") ){
$(".errormsgbox").append(" * Vul A.U.B. uw telefoonnummer in .").fadeIn("Slow");
}
else if( (Naamrekeninghouder == "") ){
$(".errormsgbox").append(" * Vul A.U.B. de rekeninghouder in .").fadeIn("Slow");
}
else if( (Rekeningnummer == "") ){
$(".errormsgbox").append(" * Vul A.U.B. uw rekeningnummer in .").fadeIn("Slow");
}
else if( (Email == "") ){
$(".errormsgbox").append(" * Vul A.U.B. uw email in.").fadeIn("Slow");
}
else if( (Username == "") ){
$(".errormsgbox").append(" * Vul A.U.B. uw gebruikersnaam in .").fadeIn("Slow");
}
else if( (Password == "") ){
$(".errormsgbox").append(" * Vul A.U.B. uw wachtwoord in .").fadeIn("Slow");
} else {
$.ajax({
type :'POST',
url :'./checkregistration.php',
data :{ Voornaam : Voornaam,
Achternaam : Achternaam,
Straat : Straat,
Huisnummer : Huisnummer,
Postcode : Postcode,
Woonplaats : Woonplaats,
Telefoon: Telefoon,
Naamrekeninghouder: Naamrekeninghouder,
Rekeningnummer : Rekeningnummer,
Email : Email,
Username : Username,
Password : Password
},
error:function(data){
$(".errormsgbox").html("Er is een fout opgetreden in de uitvoering van JavaScript");
},
success:function(data){
$(".errormsgbox").empty().html(data);
}
});
}
});
});
php代码如下:
<?php
session_start();
require('scripts/mysql_connect.php');
$_SESSION['Voornaam'] = $_POST['Voornaam'];
$_SESSION['Achternaam'] = $_POST['Achternaam'];
$_SESSION['Straat'] = $_POST['Straat'];
$_SESSION['Huisnummer'] = $_POST['Huisnummer'];
$_SESSION['Postcode'] = $_POST['Postcode'];
$_SESSION['Woonplaats'] = $_POST['Woonplaats'];
$_SESSION['Telefoon'] = $_POST['Telefoon'];
$_SESSION['Naamrekeninghouder'] = $_POST['Naamrekeninghouder'];
$_SESSION['Rekeningnummer'] = $_POST['Rekeningnummer'];
$_SESSION['Email'] = $_POST['Email'];
$_SESSION['Username'] = $_POST['Username'];
$_SESSION['Password'] = $_POST['Password'];
//Check of het ingevulde e-mail adres geldig is.
if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $_POST['Email'])) {
//regular expression for email validation
$Email = $_POST['Email'];
} else {
$error[] = 'Vul a.u.b. een geldig e-mail adres in';
}
if(preg_match('/^[0-9]*$/',$_POST['Huisnummer'])){
} else{
$error[] = 'Uw huisnummer kan alleen cijfers bevatten';
}
if(preg_match('/^[0-9]{4}[A-Z]{2}$/',$_POST['Postcode'])){
} else{
$error[] = 'Vul a.u.b uw postcode in formaat 1234AB';
}
if(preg_match('/^[A-Z]{2}[0-9]{2}[A-Z]{4}[0-9]{10}$/',$_POST['Rekeningnummer'])){
} else {
$error[] = 'Vul a.u.b een geldig IBAN nummer in';
}
if (empty($error)){ // If everything's OK...
// Make sure the email address is available:
$query_verify_email = "SELECT * FROM Klant WHERE Email ='$Email'";
$result_verify_email = mysqli_query($dbc, $query_verify_email);
if (!$result_verify_email) { //if the Query Failed ,similar to if($result_verify_email==false)
echo ' Email validatie mislukt <br> ';
}
if (mysqli_num_rows($result_verify_email) == 0) { // IF no previous user is using this email .
// Create a unique activation code:
$activation = md5(uniqid(rand(), true));
$query_insert_user =
"INSERT INTO Klant (KlantID,Voornaam,Achternaam,Straat,Huisnummer,Postcode,Woonplaats,Telefoon,Naamrekening,Rekeningnr,Email,Username,Password,Activation) VALUES ('','$_POST[Voornaam]','$_POST[Achternaam]','$_POST[Straat]','$_POST[Huisnummer]','$_POST[Postcode]','$_POST[Woonplaats]','$_POST[Telefoon]','$_POST[Naamrekeninghouder]','$_POST[Rekeningnummer]','$_POST[Email]','$_POST[Username]', '$_POST[Password]', '$activation')";
$result_insert_user = mysqli_query($dbc, $query_insert_user);
if (!$result_insert_user) {
echo 'Fout bij het aanmaken van de gebruiker <br>';
}
}
}
?>
答案 0 :(得分:0)
您是否尝试过使用JSON.stringify发布数据?
$.ajax({
type :'POST',
url :'./checkregistration.php',
data : JSON.stringify({
Voornaam : Voornaam,
Achternaam : Achternaam,
Straat : Straat,
Huisnummer : Huisnummer,
Postcode : Postcode,
Woonplaats : Woonplaats,
Telefoon: Telefoon,
Naamrekeninghouder: Naamrekeninghouder,
Rekeningnummer : Rekeningnummer,
Email : Email,
Username : Username,
Password : Password
}),
error:function(data){
$(".errormsgbox").html("Er is een fout opgetreden in de uitvoering van JavaScript");
},
success:function(data){
$(".errormsgbox").empty().html(data);
}
});