2011-01-09 139 views
0

我一直在研究PHP一段時間,現在和Ajax約一個月或兩個月。我仍然無法弄清楚PHP如何將數據發送到Ajax以及Ajax如何檢索數據。PHP如何將數據發送到Ajax?

任何人都可以發佈一個例子或東西嗎?

也許在提交一些文本之後..PHP將數據發送到數據庫,但Ajax如何接收並將其發佈到指定的字段而不刷新?

如果有幫助,我使用jQuery很多,所以如果你做一個Ajax請求PHP腳本我會使用它與阿賈克斯也

+1

HTTP是一個調用和響應協議。當客戶端使用AJAX向服務器發送請求時,請使用PHP輸出XML,JSON或HTML。 – webbiedave 2011-01-09 00:13:06

+0

當您使用Ajax調用PHP頁面時,頁面上的任何內容都將通過XMLHttpRequest.responseText傳遞迴您的Javascript。閱讀Ajax教程,它會向你解釋一切。 – Jonah 2011-01-09 00:13:40

+0

我明白,我還是不明白。 – nowayyy 2011-01-09 00:17:27

回答

4

它實際上比你想像的要複雜得多。把AJAX想象成只是請求任何舊網頁,訣竅就是它在幕後執行,「即時」,而不考慮瀏覽器的URL欄中的任何內容。

在這個意義上,你幾乎問錯了問題(幾乎),因爲它並不重要(在某種程度上)PHP如何服務的頁面。 AJAX可以請求從PHP提供的任何頁面。因此,舉例來說,假設你有一個簡單的PHP頁面,看起來像這樣:

<?php 
$content = '<div class="content">content</div>'; 
echo $content; 
?> 

而且你將文件保存爲/content.html

從另一個頁面,您可以動態加載的內容,使用AJAX,並作爲jQuery是自己的喜好,可能是這樣的:

$('#result').load('/content.html #content'); 

.load()是特定類型的AJAX功能(有多種,最基本的幸福。阿賈克斯()我相信)負載HTML內容直接進入給定頁面。在這種情況下,上面發生的事情是,當你調用.load()函數時,它通過AJAX /content.html加載到內存中,查找名爲#content的元素(這恰好是一個div),然後插入加載的#content元素放入#result元素中。

請注意,我之前說「幾乎」和「某種」的原因在於,這取決於您在做什麼,如何格式化您的PHP頁面,這一點很重要。例如,請求使用AJAX格式的頁面很常見,格式爲XML,JSON或只是普通的舊HTML片段。當然,這是一個更密集的主題,但這裏有幾個示例教程:

http://www.xoops.org/modules/news/article.php?storyid=5103 http://www.factsandpeople。com/facts-mainmenu-5/26-html-and-javascript/89-jquery-ajax-json-and -php http://www.phpriot.com/articles/php-json-jquery-ajax-screencast

希望至少有所幫助。然而,網上有幾千個教程,只需在Google上搜索應該會產生大量的結果。

1

  • 任何你echo在PHP中會出現在Ajax請求的響應主體中。正如@webbiedave所說,這可以是例如明文,XML或HTML或JSON編碼數據。

  • 您在PHP腳本中輸入的任何狀態碼(例如header("HTTP/1.1 404 Not Found"))都會反映在Ajax結果中。如果拋出一個不成功的HTTP狀態代碼(例如404500),則Ajax請求將失敗,並且(如果您使用jQuery的Ajax)將調用error回調。

1

它只是在瀏覽器中發送請求到服務器,只在後臺進行,不需要重新加載。收到的數據是頁面的內容。如果您在瀏覽器中打開網址,您也會看到相同的結果。