我剛開始使用dojo,並通過xhrGet在dojo中使用Ajax。PHP腳本如何向Dojo的xhrGet發送JSON Ajax響應?
我明白,無論您在PHP中「回聲」什麼是作爲Ajax結果返回的,但是如何與JSON一起工作?
PHP腳本是否回顯JavaScript代碼,然後直接從xhrGet調用的函數訪問?
我想要一個PHP腳本從數據庫中檢索數據,填充三個數組,並使它們在我的JavaScript代碼中可用,全部使用xhrGet。
謝謝!
我剛開始使用dojo,並通過xhrGet在dojo中使用Ajax。PHP腳本如何向Dojo的xhrGet發送JSON Ajax響應?
我明白,無論您在PHP中「回聲」什麼是作爲Ajax結果返回的,但是如何與JSON一起工作?
PHP腳本是否回顯JavaScript代碼,然後直接從xhrGet調用的函數訪問?
我想要一個PHP腳本從數據庫中檢索數據,填充三個數組,並使它們在我的JavaScript代碼中可用,全部使用xhrGet。
謝謝!
設置與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;
大多數JavaScript庫環繞AJAX請求回調。我不確定Dojo,但jQuery在發送URL時向URL添加了一個回調參數。
然後,當服務器作出響應時,它會觸發該回調,它將調用回調來處理結果。
至於實際的服務器端的東西,服務器通常只是打印JSON編碼的字符串,並傳遞一個額外的頭讓瀏覽器知道它是什麼類型的內容。
<?php
$rows = $db->fetch($sql);
header('Content-type: application/json');
print json_encode($rows);
?>
啊我明白了。因此,如果我有三條語句使用json_encode編碼三個不同的數組,我可以通過使用response.whateverArray在xhrGet中的load調用來訪問這些語句。另外,如果我使用xhrGet的「內容」傳遞某些東西,我是使用$ _GET數組還是$ _REQUEST數組?我見過都用過。謝謝! – user965951
是的,總是使用'$ _GET'和'$ _REQUEST',因爲'$ _REQUEST'是'$ _GET'和'$ _POST'的組合。 – AlienWebguy