-1

私はAJAXでユーザーをチェックして、このユーザーがすでに登録しているかどうかを確認しますが、ユーザーがリダイレクトの代わりに表示された最後のエコーから登録を送信したときにajaxがチェックした後、どうすればよいですか? 私が言ったことを理解するためにあなたのコードを見てください:

ここに登録フォームの私のajaxがあります

    ('#phone').keyup(function(){  
            //run the character number check  
                //get the phone  



        //use ajax to run the check  
          $.ajax({

                url: 'check.php',
                 type: 'POST',
                 dataType: 'html',
                    data: { 
                            phone : $('#phone').val()

                            },
                success:function(response){
                    if(response == "1"){
                        document.getElementById('phone').setCustomValidity("این شماره تلفن قبلا به ثبت رسیده است");
                        }
                        else{
                            document.getElementById('phone').setCustomValidity("");
                        }
                                         }

                    });

 });  


<form id=contactform action="registeropr.php" method="post">

////// ここに私のサーバー側のコードがあります

if(!is_null($_POST['phone'])){


$phone = trim(strtolower($_POST['phone']));

$phone = mysql_escape_string($phone);

    $result = mysql_query("SELECT phone from users WHERE phone = '$phone' LIMIT 0, 3");
        //$user_data = mysql_fetch_array($result);
        $no_rows = mysql_num_rows($result);

        if($no_rows > 0){
            echo 1;
                        }
        else{
            echo 2;
            }
                            }
        ///////////////////////////////////////////
        /*else
        {
            $email = trim(strtolower($_POST['email']));
            $email = mysql_escape_string($email);

    $result = mysql_query("SELECT Email from users WHERE Email = '$email' LIMIT 0, 3");

         $no_rows = mysql_num_rows($result);

        if($no_rows > 0){
            echo 3;
                        }
        else{
            echo 4;
            }

ここでは、ユーザーに正しいメッセージを表示するために何が起こったのかを確認するために番号をエコーし​​ますが、ユーザーがすべてのフィールドを正しく設定すると、リダイレクトの代わりに最後のエコーが表示されます。

4

1 に答える 1

0

アプローチ:1

AJAX コードで、次のように比較します

 success:function(response){
                    if(response == 1){
                                  ^ ^ quotes removed. 

アプローチ:2

コードは次のようになります。[ EXTRA 中かっこ(削除) があり、以下に示すように、echo ステートメントをリダイレクト ヘッダーに置き換える必要があります]。

 <?php
    $phone = trim(strtolower($_POST['phone']));

    $phone = mysql_escape_string($phone);

    $result = mysql_query("SELECT phone from users WHERE phone = '$phone' LIMIT 0, 3");
    //$user_data = mysql_fetch_array($result);
    $no_rows = mysql_num_rows($result);

    if($no_rows > 0){
        echo 1;
    }
    else{
        header("location:yourpage.php");

    }
于 2013-08-21T10:00:21.557 に答える