2
我有一個項目列表和一個側邊欄,其中顯示有關項目的詳細信息。側邊欄是一個部分,當onmouseenter事件觸發列表中的某個項目時,該部分應該隨Ajax更改。使用Rails 3中的Ajax更新部分
我設法通過Ajax來(在我進入鼠標的項目)的ID發送到我的控制器的行動「清單」,但部分未更新... :(
我相信,我非常接近解決方案,我是Ajax新手,我在StackOverflow和其他許多網站上搜索了整個下午,但他們總是解釋如何使用Ajax管理CRUD操作,但它似乎不適合我。 。
下面是代碼:
-The AJAX部分:
$("div.item").mouseenter(function(event){
var id = $(this).attr('data');
var url = "/item/list?id="+id+"&lg=en";
var data = $(this).serialize();
$.post(url,function(response_data){$("#item_details").html(response_data)});
return false;
});
-The控制器動作:
def list
@items = Item.all
if request.xhr?
id_exists?("item", params[:id], "item", "list"){@item = Item.find(params[:id])}
render :partial => "item/sidebar/sidebar_home", :object => @item
else
@item = @items.first unless @items.empty?
end
end
-The HAML:
content_for :sidebar do
#item_details
=render :partial => "item/sidebar/sidebar_home", :object => @item
.items_wrapper
-if @items.empty?
="No items"
-else
= render :partial => "item/partials/item", :collection => @items
內部的第二部分I有它包裝一切div.item的。 所以基本上,我想更新側邊欄的內容,就是這樣。
對不起,如果問題似乎很愚蠢,並提前感謝您的幫助。
問題解決了,感謝Ogz Wizard! XD
謝謝你,我會檢查你的鏈接現在! – Alex 2012-04-09 21:24:28
所以我猜response_data是:render:partial =>「item/sidebar/sidebar_home」,:object => @item? – Alex 2012-04-09 21:28:15
是的,它的工作原理我將用最終的解決方案編輯我的文章。非常感謝Ogz巫師,你拯救了我的一天! – Alex 2012-04-09 21:39:05