2011-09-26 92 views
1

我剛開始使用dojo,並通過xhrGet在dojo中使用Ajax。PHP腳本如何向Dojo的xhrGet發送JSON Ajax響應?

我明白,無論您在PHP中「回聲」什麼是作爲Ajax結果返回的,但是如何與JSON一起工作?

PHP腳本是否回顯JavaScript代碼,然後直接從xhrGet調用的函數訪問?

我想要一個PHP腳本從數據庫中檢索數據,填充三個數組,並使它們在我的JavaScript代碼中可用,全部使用xhrGet。

謝謝!

回答

2

設置與PHP頭時重複前:

<?php 
    header('Content-type: application/json'); 
    echo '{"myJsonKey":"myJsonVal"}'; 

針對您的特殊情況下,你會做這樣的事情:

<?php 
    $my_records_array = fetch_records($some_criteria); 
    $my_records_json = json_encode($my_records_array); 

    header('Content-type: application/json'); 
    echo $my_records_json; 
+0

啊我明白了。因此,如果我有三條語句使用json_encode編碼三個不同的數組,我可以通過使用response.whateverArray在xhrGet中的load調用來訪問這些語句。另外,如果我使用xhrGet的「內容」傳遞某些東西,我是使用$ _GET數組還是$ _REQUEST數組?我見過都用過。謝謝! – user965951

+0

是的,總是使用'$ _GET'和'$ _REQUEST',因爲'$ _REQUEST'是'$ _GET'和'$ _POST'的組合。 – AlienWebguy

0

大多數JavaScript庫環繞AJAX請求回調。我不確定Dojo,但jQuery在發送URL時向URL添加了一個回調參數。

然後,當服務器作出響應時,它會觸發該回調,它將調用回調來處理結果。

至於實際的服務器端的東西,服務器通常只是打印JSON編碼的字符串,並傳遞一個額外的頭讓瀏覽器知道它是什麼類型的內容。

<?php 
$rows = $db->fetch($sql); 

header('Content-type: application/json'); 
print json_encode($rows); 
?>