[英]How to reload a certain part in a php file with new data?
我有一個php文件,它從MySql數據庫檢索數據並顯示它。 但是數據庫中沒有更多的數據,比如說100。但是在我的php文件中,我計划一次只顯示6
LIMIT start_value, 6.
然后在底部有一個平底鍋,其中包含以下代碼
<a href="index.html?start_value=start_value+6">1</a>
<a href="index.html?start_value=start_value+12">2</a>
<a href="index.html?start_value=start_value+18">3</a>
<a href="index.html?start_value=start_value+24">4</a>
<a href="index.html?start_value=start_value+30">5</a>
<a href="index.html?start_value=start_value+36">6</a>
所以現在的問題是,如果有人單擊整個index.html上方的鏈接,將會重新加載,這很煩人。 是否可以通過單擊任何鏈接后僅重新加載該特定DIV來顯示數據庫中的新數據?
您有兩種選擇:
Ajax ,它允許您使用JavaScript從服務器檢索數據,然后可以使用它來操作DOM。 Ajax的基礎是XMLHttpRequest
對象,該對象使您可以在JavaScript中完全檢索后台數據。 請注意,Ajax受“ 相同來源策略”的限制,但是對於您所描述的情況,這很好-您將從同一來源加載數據。
框架(例如iframe
元素),您可以通過設置框架的src屬性將其加載到其中。
在這兩者之間,Ajax更加靈活。
參考資料/進一步閱讀:
旁注 :雖然顯然您可以直接使用XMLHttpRequest
和DOM方法,但是請注意,存在跨瀏覽器的差異(以及徹底的錯誤),可以通過jQuery , Prototype , YUI , Closure或其他任何一個 。 它們還提供了許多有用的實用程序功能,使您可以專注於要解決的實際問題,而不必關注管道的詳細信息。
例如,以下是使用jQuery向服務器發送Ajax請求並在頁面上使用服務器發回的HTML片段更新元素的方法:
$("#target").load("get_the_data.php", {article: x});
也就是說:從get_the_data.php請求HTML片段,向其發送參數文章以及x變量的值,然后將該HTML片段放入具有HTML id“ target”的元素中。 如果您不使用庫,那將是十行不錯的代碼。 現在,這不是很多,但要反復重復(並在此過程中處理有關通過ID查找元素的IE錯誤),然后您將看到如何將其累加。
我確實建議您閱讀上述參考資料,以使您知道庫是如何做的(這不是魔術),但是沒有理由不利用人們所做的辛勤工作來簡化這些工作。
如果您有一個提供myaction服務的頁面,例如index.html?start_value = start_value + 6,則可以執行以下操作:
setInterval(myaction, 20000); //every 20 seconds
function myaction() {
$("#quoteContainer").load("index.html?start_value=start_value+6");
}
是否可以通過單擊任何鏈接后僅重新加載該特定DIV來顯示數據庫中的新數據?
就在這里。 您需要使用XMLHttpRequest對象和DOM 。 一句話: AJAX
最好的方法是使用jQuery或Prototipe之類的框架。
在這里您可以找到一個例子。 在該示例中,應將“ latest_scores.html”頁面替換為另一個頁面“ latest_scores.php”。 php腳本將創建可以放置在div中的刷新內容。
您應該查看jQuery javascript庫 ,該庫使您可以輕松地使用ajax加載內容,因為ajax正是您所需要的! PHP是一種服務器端語言,它在服務器上運行,並且不是動態的,您正在尋找在客戶端上工作的東西,那就是Javascript。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.