2017-03-12 112 views
1

我使用AJAX將數據發送到PHP文件,並根據發送什麼樣的數據在PHP中所示的警告框,一個alert()要麼顯示或圖示。檢查是否使用AJAX

在裏面的AJAX功能success,我怎樣檢測,如果結果顯示一個警告框?

var called = $("#called").val(); 

$.ajax({ 
    type: "POST", 
    url: "send.php", 
    data: "name=" + called,, 
    success: function(data) { 
     if(alert box was shown) { 
     // something happens 
     }else{ 
     // alert box wasn't shown, something else happens. 
     } 
    }    
}); 

send.php

<?php 
if($_POST['name'] == 'john') { 
    echo' 
    <script> 
    alert("Correct name"); 
    </script> 
    '; 
} 
+2

一個更好的辦法是從PHP使用'success'功能''回調的結果發回,並顯示警告有 –

+1

。在你的代碼中的問題。您正在發送'POST'請求​​,並在'PHP'的'GET'請求中接收。 –

+0

@SahilGulati謝謝,解決了我的問題中的錯字。 –

回答

3

這將是更好的發回的結果形成Ajax請求,並顯示/不顯示在success回調警報:

$.ajax({ 
    type: "POST", 
    url: "send.php", 
    data: "name=" + called,, 
    success: function(data) {  
     if (data == "show") { 
     // something happens 
     alert("Correct name"); 
     } else { 
     // alert box wasn't shown, something else happens. 
     } 
    }    
}); 

而你的服務器上:

if ($_POST['name'] == 'john') { 
    echo "show"; 
} 
+1

謝謝你:) –

0

您可以使用json_encode() php函數從php返回數據。

這將是一個更好的辦法:

PHP:

if (!isset($_POST['name'] || empty($_POST['name']) { 
    die(json_encode(array('return' => false, 'error' => "Name was not set or is empty"))); 
} elseif ($_POST['name'] == "John") { 
    die(json_encode(array('return' => true))); 
} else { 
    die(json_encode(array('return' => false, 'error' => "Name is different than John."))); 
} 

在這一點上,你將被允許從JS檢查返回值,並決定是否需要顯示成功的警報或向控制檯發送一條錯誤消息(或者做你想做的事......)。

JS:

var called = $("#called").val(); 

$.ajax({ 
    type: "POST", 
    url: "send.php", 
    dataType: "JSON", // set the type of returned data to json 
    data: {name: called}, // use more readable syntaxe 
    success: function(data) { 
     if (data.return) { // access the json data object 
     alert("Congrats ! Your name is John !"); 
     } else { 
     console.log("Sorry, something went wrong : " + data.error); 
     } 
    }    
}); 

所以,json_encode()允許從JS返回容易訪問對象,也將允許您設置和顯示錯誤消息,在輕鬆的情況下返回是假的。

希望它能幫助!

0

PHP不知道是否顯示警告,因爲在JavaScript中,alert()函數沒有返回值,也沒有可用於向服務器發送ajax請求的單擊確認事件。

一個解決方案是在$ .ajax()的成功事件中使用confirm()命令,如果用戶單擊「ok」或「cancel」,則會發送其他ajax請求。

像這樣的事情

var called = $("#called").val(); 

$.ajax({ 
    type: "POST", 
    url: "send.php", 
    data: "name=" + called, 
    success: function(data) { 

     if (data == "show") { 

      var clicked = confirm("Correct name"); 

      if (clicked == true || clicked == false) { 
       $.ajax({ 
        url: "send.php?clicked=1", 
       }); 
      } 
     } 
     else { 
      // Whatever to do than... 
     } 
    } 
});