2017-02-25 80 views
0

我試圖使用PHP驗證服務器端的電子郵件。我正在使用jQuery「$ .post()」函數執行此操作。我知道我也可以用'$ .ajax()'來做到這一點。如何使用AJAX中的RETURN值(來自服務器腳本)

但問題是如果服務器端的PHP腳本返回一個值,那麼jQuery的帖子或ajax都無法捕捉結果,但如果PHP'回聲'的結果,那麼它的作品完美。

我的問題是我如何才能捕捉到PHP返回的結果,而不是ECHO。

目前我我的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到「迴歸」的結果,而不是「回聲」

任何幫助將得到高度讚賞。

回答

0

試試這個:

PHP的:

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

if ($email) { 

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

     echo false; 
    } 
} 

的Jquery:

$.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在所有...因爲我需要回報更復雜的任務 – APu

相關問題