2010-08-12 38 views
0

我只是想在這裏檢查一下 - 你必須在PHP中通過(jQuery)XHR來檢索它們的值嗎?如何將值從PHP發送到jQuery:echo還是返回?

例如

PHP

public function processRequest() { 

    //intercept AJAX requests 
    if (!empty($_GET)) { 

     if (isset($_GET['xhr'])) { 
      if ($_GET['xhr'] == true) { 
       //process AJAX 

       //call relevant method 
       echo json_encode(array('key' => 'value')); 
       return; 
      } 
     } 
    } 

    //else proceed with regular output 
    $this->render(); 
} 

的jQuery

function doAjax(){ 

    $.ajax({ 
     url: "index.php?xhr=true", 
     cache: false, 
     dataType: 'json', 
     success: function(data){ 
      console.log(data); 
     } 
    }); 
} 

這將記錄在螢火蟲控制檯JSON對象用適當的值。 如果我試着返回的價值而不是回聲,我得到nada。

回答

4

他們必須迴應在響應中,所以是的,他們必須在那裏讓jQuery看到他們......否則瀏覽器得到的響應將不會有內容。

作爲一個側面說明,您可以檢查X-Requested-With: XmlHttpRequest頭,如果你想要的是,以檢查它是否來自jQuery的,it already adds this header with every request AJAX請求例如:

if($_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest'){ 
+0

啊,我沒有意識到,jQuery補充說,我在D.Walsh的博客上看到,它不是一個可靠的索引 – sunwukung 2010-08-12 11:38:29

0

返回什麼都不會做,因爲你不在一個函數中,你在一個單獨的文件中。返回將會優雅地停止執行。

您需要回顯/打印JavaScript的數據以便在執行http請求時讀取它。它的功能與您將該網址打開並在瀏覽器中打開相同。

0

響應將由呈現的頁面組成,因此當您返回它時,它會在PHP文件中返回它,頁面的實際呈現從不會看到該值,因此jQuery也不會。

從本質上講,如果您查看源代碼,jQuery AJAX命令將會看到您的瀏覽器將看到什麼。