Отправка формы - успех - PullRequest
       14

Отправка формы - успех

0 голосов
/ 16 декабря 2009

ну, у меня очень странная проблема с отправкой формы, на которую я потратил несколько дней и до сих пор не могу ее решить: 1) при правильном заполнении формы (для нового пользователя) работает хорошо 2) если я пытаюсь зарегистрировать пользователя с существующим адресом электронной почты ... он просто обновляется, а не выдает ошибку 3) если я отправляю форму после неудачной попытки, я не получаю никаких признаков успеха, хотя данные были отправлены в базу данных вот мой код:

 $(function() {  
 $("#send").click(function() {  
    // validate and process form here  
//var email = $("#email").val();
//var lname =  $("input#lname").val();
var dataString = $("#pForm").serialize();
//alert (dataString);
        $.ajax({ 
            type: "POST",
            url: "../php/insertUser.php",
            data: dataString,
            success:function(msg, status){
        //alert (dataString);
        var reply = parseInt(msg);
        alert(status+ "" + msg);
        if(reply ==1){
            alert('Email address already exists in our members database.\nPlease try another address and then submit it again!');
        }
        else if(reply ==2){ //do nothing
        //  alert('You have one or more empty fields!\nPlease provide all the information required and then submit it again!');
        }
        else if(reply == 0){
        $('#pForm').hide('fast');
        $('#accForm').show('slow');
        }
                              }
                });      

  });  
});  

и мой php выглядит так:

 <?php 
 include ('databaseCon.php');
 $err = 0;
//echo $data= $_POST['dataString'];
 $accType = $_POST['accType'];
 $fname =$_POST['fname'];
 $lname = $_POST['lname'];
 $email = $_POST['email'];

 $country = $_POST['country'];
 $state = $_POST['state'];
 $city = $_POST['city'];



 // check for empty fields
 if (($accType == "") || ($fname == "") || ($lname == "") || ($email == "") || ($country == "") || ($city == "")){
$empty = true;
}

if ($email != ""){
    $em = mysql_query("Select Email from Users where Email = '$email';") or die(mysql_error());
    $row = mysql_num_rows($em);

    }
//else{echo "unknown error 2 " + $email + "\n";}
    if ($empty == false){
        //echo ""+ $accType +"\n"+ $fname +"\n"+ $lname +"\n"+ $email +"\n"+ $country +"\n"+  $state +"\n"+ $city + "" ;
        if($row == 0){
        echo $users = mysql_query("Insert into Users values('','$fname', '$lname', '$email', '$accType', '$country', '$state', '$city');") or die(mysql_error());   
        }
        else{
            $err = 1;}
        }
    else{
    $err = 2;
    }
 echo $err;

 ?>

Любые идеи и спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 02 марта 2012
if(reply ==1){
    alert('Email address already exists in our members database.\nPlease try another address and then submit it again!');
    return false;
}

Попробуйте это.

0 голосов
/ 16 декабря 2009

Вы тестировали, внедрив обработчик ошибок в вызове ajax?

На несвязанной заметке вам действительно нужно использовать некоторую форму экранирования данных / защиты базы данных с вашими запросами, предпочтительно с подготовкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...