2010-05-27 52 views
0

我遇到了jQuery Ajax和PHP的問題jquery Ajax + PHP

我有我的PHP文件設置來回顯我從MySQL數據庫收集的數據。我已驗證數據庫正在返回一些內容,並且函數結尾的字符串實際上包含數據。

雖然發生了什麼,但它看起來像在PHP回聲發生在ajax調用之前,導致PHP數據顯示在頁面的頂部,而不是在正確的div下面。

我認爲這可能與ajax和php調用的時間有關,但我不確定。

那麼,爲什麼數據沒有被.ajax捕獲並拋入div?

感謝您的幫助!

jQuery的

$(document).ready(function() { 

$.ajax({ 
    url: "../database_functions.php", 
    type: "GET", 
    data: "cat=jw&sub=pi&sort=no",  
    cache: false, 
    success: function (html) {     
      alert("Success!"); 
      $('#product-list').html(html);   
     }  
    }); 

});

PHP

echo "Hello World"; 

回答

0

你確定你沒有使用一個包含或在您的網頁需要?嘗試在新的空虛擬頁面上執行相同的 。此外,嘗試在div上添加一個厚紅色邊框,以確保它位於頁面的正確位置,因爲您的佈局可能有問題。你的代碼雖然看起來不錯。

+0

我確實在php頁面上使用include來允許db調用?這會影響事物嗎? – 2010-05-27 19:12:39

+0

哦,還要嘗試將Ajax調用放入按鈕的單擊事件中,而不是頁面加載,以便查看是否是時間。 – 2010-05-27 19:13:01

+0

@Kris我的意思是包含在使用jQuery的頁面上。 – 2010-05-27 19:13:47

0

如果您的JQuery代碼與PHP代碼位於同一文件中,那麼PHP會在JQuery代碼之前執行,因爲JavaScript是客戶端,PHP是服務器端,PHP文件首先在服務器上執行,從動態PHP呈現靜態HTML,並且比客戶端瀏覽器呈現頁面JavaScript時得到執行。

.ajax只會在整個頁面加載時執行一次,因爲您在JavaScript中聲明瞭您希望在文檔返回事件準備就緒時執行它。

爲什麼.ajax不會返回值,..您提供的代碼不是很清楚,問題可能出現在文件或文件ajax調用嘗試運行的路徑中。