2012-03-09 59 views
0

我一直在學習Ajax,現在我想知道它是如何允許從Javascript傳遞給PHP的字符串。Ajax如何使Javascript字符串被傳遞到php

之前說過,將Javascript傳遞給PHP的問題在於PHP代碼先運行,然後運行Javascript。所以當Javascript生成一個字符串時已經太晚了。

這是否意味着Ajax允許PHP代碼在Javascript之後運行?

回答

0

坐在服務器上的php解釋器基本上將任何php腳本解釋爲(通常)HTML頁面。

這就是爲什麼你永遠不能將JavaScript變量傳遞給PHP作爲解釋器,你的JavaScript只是另一個字符串,沒有任何特殊的含義。您的JavaScript由您的瀏覽器運行,甚至不知道它是由PHP生成的。

我相信這就是「太遲」的意思。

0

您應該知道,JavaScript始終(除Node.js)客戶端。 PHP是一種服務器端語言。

您無法將Javascript變量傳遞給PHP - 至少不會在Pageload中。

什麼可以在頁面被髮送給PHP之後,它正在做一個AJAX請求。 通過該呼叫的響應,您可以替換當前請求的頁面上的其他一些內容。

2

,我認爲這是他們在說什麼在:

阿賈克斯之前 - 具體而言,XMLHttpRequest來到之前一起 - 在一個網頁中擔任一個頁面加載。如果它是一個包含Javascript的PHP生成的頁面,瀏覽器將請求該頁面,PHP將生成頁面(包括Javascript代碼,包括頁面上的腳本片段等),並將頁面發送到瀏覽器,瀏覽器會顯示它。所以,PHP發生在前面。在下一頁加載之前 - 當整個頁面從頭開始刷新時--PHP不再被涉及。

XMLHttpRequest來臨,這有助於把「X」在「AJAX」後,因爲它是回去以後,你有另一種選擇。頁面加載完成後,您的Javascript可以在頁面的「幕後」發出請求,從服務器請求更多信息,而無需重新加載頁面。實際上,加載的頁面可能會導致更多的PHP在服務器上運行,並顯示結果。

所以,如果你正在考慮從一個基於PHP的網站一個頁面加載,這是(在某種程度上)是什麼意思阿賈克斯;沒有它,你會得到一個單獨的PHP頁面 - 構建,然後你的Javascript必須單獨運行。使用Ajax,您可以向服務器發出進一步請求,並將結果輸出到現有頁面上,而無需整頁加載。

0

這並不意味着「Ajax允許PHP代碼在Javascript之後運行」。 AJAX是新請求到服務器,它允許您操作服務器的響應。您可以通過應對正在進行AJAX請求的url並將其粘貼到瀏覽器中來觀察此情況。
所以基本上當你用瀏覽器打開一個網站時,你發送一個請求,任何AJAX調用也是一個請求,但是在後臺完成,所以你不能直接看到它。您可以使用例如螢火蟲或其他開發人員的工具來查看幕後發生的情況。它與腳本執行命令無關。

相關問題