2012-04-07 49 views
0

我正在向一個PHP腳本發出一個jQuery Ajax POST請求,該腳本返回一個包含所有選項的HTML選擇菜單。從jQuery Ajax加載HTML

$.ajax({ 
    type: "POST", 
    url: "books/editions", 
    data: dataString, 
    cache: false, 
    success: function(menu) { 
     $('#editions').html(menu); 
    } 
}); 

調試告訴我PHP腳本已正確執行並正在按預期方式返回HTML選擇菜單。然而,Firebug告訴我'菜單'是未定義的 - 顯然沒有任何東西被加載到'#editions'div中。

我期待'菜單'包含從PHP函數返回的HTML字符串,但這似乎並不是這種情況。有人能告訴我我做錯了什麼嗎?提前致謝。

-

按照要求,PHP版本()方法的代碼:

public function editions() 
{ 
    $menu = $this->books_repository->get_editions_menu(); 
    return $menu; 
} 

同樣,在折返點的調試告訴我,該方法返回了正確格式化的HTML字符串正確的內容。

回答

3
public function editions() { 
    $menu = $this->books_repository->get_editions_menu(); 
    //return $menu; when ajax jQuery is used, make sure the output is printed 
    echo $menu; 
} 
+0

在你的php部分是它$ _POST [somename]? ajax中的數據:什麼是dataString? – 2012-04-07 03:44:27

+0

Thx用於響應。是的,'dataString'包含PHP函數返回HTML字符串所需的變量。我知道該部分工作正常,因爲該字符串是從PHP返回的預期。 – cantera 2012-04-07 03:48:19

+0

是你的網址:「控制器/方法」? – 2012-04-07 03:50:53