我有一個用戶可以提交的鏈接數據庫。每次用戶提交新鏈接時,都會將其添加到數據庫中。我有一個單獨的頁面,列出所有提交的鏈接。我怎樣才能讓這個單獨的頁面檢查數據庫中的更改,並在發現它們時使用AJAX加載它們?使用PHP + jQuery AJAX檢查MySQL數據庫的更改並加載更改?
7
A
回答
14
根據數據庫內容需要更新的頁面必須經常查詢數據庫。 Javascript是一種客戶端技術,不適用於直接與後端服務器交互。
的JavaScript看起來像這樣(使用jQuery):
$.post("/webroot/checkForChanges.php",
{ currentNumber: currNumString },
function(dat){
$(dat).find('link').each(function() {
$('#linksTable').append(""+$(this).text()+"");
});
});
這將使名爲currentNumber變量誰擁有的值是POST請求的頁面,你會寫(checkForChanges.php)當前在表中的鏈接數的字符串表示(不管你喜歡這些)。
代碼中的函數(dat)部分是請求完成時(即php頁面處理完畢並且接收到的文本已被瀏覽器接收)時運行的回調函數。
當我解釋了PHP頁面正在做什麼時,我將回到這是做什麼。
你沒有告訴我們關於你的數據庫結構的任何信息,但是由於你成功地允許人們添加鏈接,所以你必須在某個地方定義一個序列來跟蹤鏈接的整數ID(這樣每個鏈接都可以在數據庫中給定一個唯一的ID)。我假設你已經把這種「鏈接數」 你應該用下面的僞代碼創建一個簡單的PHP頁面:
//open a database connection
$DB = connect(name, user, password);
//receive value
$currNum = $_POST['currentNumber'];
//check to see if sequence number has incremented since last time:
$seqNum = query("SELECT currval('links-count')");
if ($seqNum == $currNum){
exit(0);
} //if they are the same, just exit the page without writing anything
//otherwise, carry on... get the result of your query (for new links)
//and loop through, echoing return data
$newEntries = query("SELECT url FROM links WHERE id > ".$currNum);
echo "<newlinks>";
while ($result = fetch_result($newEntries)) {
echo "<link><a>".$result."</a></link>";
}
echo "</newlinks>";
通過此頁面返回的輸出將是一個節點的XML文檔對於每個包含要放入表格單元格中的HTML的鏈接。
現在我們可以回到回調函數在您的客戶端Java代碼$。員額要求:
function(dat){
$(dat).find('link').each(function() {
$('#linksTable').append(""+$(this).text()+"");
});
});
DAT是返回的文字,把它包裝成一個jQuery對象,然後找到名爲'link'的標籤集合。對於php頁面返回的每個'link'標籤,執行一個函數,將一個新的表格行添加到linksTable中,該表格包含鏈接標籤中的數據。
0
你可以在單獨的頁面上有一個主動的javascript,基本上輪詢db的更改,或者你可以有一個回調函數在成功提交後執行此操作。我不確定這裏會發生什麼,所以我不知道該推薦什麼。
相關問題
- 1. 檢查jQuery和數據庫的更改
- 2. 檢查數據庫更改使用UpdatePanel
- 3. 使用PHP來檢查MySQL數據庫更改
- 4. 檢查數據庫模式的更改並更新
- 5. 一次更改多個mysql數據庫(SAAS數據庫更改)
- 6. jQuery Spinner更改數據庫
- 7. MySQL:檢測數據庫更改
- 8. 使用AJAX POST並PHP更改
- 9. 爲jQuery的AJAX加載XML更改
- 10. 如何每15秒檢查並更改mysql中的數據?
- 11. PHP/AJAX:單擊圖像時更改數據庫中的值(mysql)
- 12. 使用Oracle數據庫更改通知檢測更改
- 13. 數據庫更改檢測
- 14. 從ajax更改數據庫的會話
- 15. xmlHttpRequest檢查mysql數據庫中的更改
- 16. php mySQLi更改數據庫
- 17. 更改密碼PHP/Ajax/JQuery
- 18. 檢查文件的更改使用php
- 19. 使用jQuery加載更多(無AJAX/PHP)
- 20. 如何檢查數據庫中的現有值並更改它?
- 21. 同時下載文件並使用jQuery更新數據庫Ajax
- 22. PHP - 使用MYSQL數據庫中的變量更改HTML文本
- 23. 聽取mySQL數據庫中的更改(使用PHP)
- 24. 使用jquery檢測URL並更改HTML
- 25. 在SQLite數據庫中檢測加載器的更改
- 26. 如何檢查mysql數據庫更改而不刷新?
- 27. Android服務mysql - 檢查數據庫更改
- 28. JavaScript&jQuery:更改變量並檢查值
- 29. Ajax - 檢查數據庫更新
- 30. 更新MySQL數據庫,如果值更改並更改另一個值
嗯,這是一個非常完整的答案,我花了一些時間... bballbackus,你試過嗎?您能否接受或投票,或者至少在您的意見中提供一些反饋意見?謝謝 – sillyMunky 2009-09-07 13:21:31