2017-02-25 12 views
0

PHPを使用してサーバー側の電子メールを検証しようとしています。私はjQueryの "$。post()"関数を使ってこれをやっています。私は '$ .ajax()'でもできることを知っています。AJAXのRETURN値(サーバースクリプトから)を操作する方法

しかし、問題はサーバー側のPHPスクリプトが値を返し、jqueryポストまたはajaxの両方が結果をキャッチできなかった場合ですが、PHPが「エコー」して結果が完全であれば問題です。

私の質問は、「ECHO」されていないPHPによって 'RETURN'edされた結果をキャッチする方法は私です。

現在、このような私の私のJSコードを見て:

function validate_email(email) { 

    $.post('106_1.email.php', {email: email}, function (responseData) { 

     $('#feedback').html(responseData); 
    }); 
} 

とPHPのコードは次のようになります。

$email = $_POST['email'] ?? null; 

if ($email) { 

    if (filter_var($email, FILTER_VALIDATE_EMAIL)) { 

     echo '<span class="text-primary">Email is valid.</span>'; 
    } else { 

     echo '<span class="text-danger">Invalid Email ...!</span>'; 
    } 
} 

しかし、私は本当に、次のようなブール値を返すためにPHPを望んでいた:

$email = $_POST['email'] ?? null; 

if ($email) { 

    if (filter_var($email, FILTER_VALIDATE_EMAIL)) { 

     return true; 
    } else { 

     return false; 
    } 
} 

しかし、これを行うか、ブール以外の何かを返すと、jQueryコードはそれをキャッチできません。

しかし、私は任意のヘルプは高く評価されます「エコー」

代わりに「復帰」の結果にPHPを必要としています。 jQueryの

$email = $_POST['email'] ?? null; 

if ($email) { 

    if (filter_var($email, FILTER_VALIDATE_EMAIL)) { 
     echo true; 
    } else { 

     echo false; 
    } 
} 

PHPの:

答えて

0

はこれを試してみてください

$.ajax({ 
    url : '106_1.email.php', 
    data: { 
     email: email 
    }, 
    success: function(response){ 
     if(response) // here response = true; 
     { 
      // do something 
     } 
     else 
     { 
      // do something 
     } 
    } 
}); 
+0

非常に良い回避策は、私は実際に返すためにPHPコードを必要とし、すべてのECHOをしていません...より複雑な仕事のためのcoz私はリターンが必要... – APu

関連する問題