Ich habe eine Liste von Artikel und eine Sidebar, wo ich Details zu einem Artikel anzeigen. Die Sidebar ist eine partielle, die sich mit Ajax ändern sollte, wenn das Ereignis onmouseenter auf einem Element der Liste ausgelöst wird.Update teilweise mit Ajax in Rails 3
Ich habe es geschafft, die ID zu senden (der Punkt, an dem ich die Maus eingeben) an mein Controller-Aktion „Liste“ durch Ajax aber die teilweise aktualisiert wird nicht ... :(
Ich bin sicher, dass Ich bin sehr nah an der Lösung Ich bin neu mit Ajax und ich habe den ganzen Nachmittag auf StackOverflow und vielen anderen Websites gesucht, aber sie erklären immer, wie man die CRUD-Aktionen mit Ajax verwaltet und es scheint nicht für mich zu arbeiten. .
Hier ist der Code:
-Der ajax-Teil:
$("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;
});
-Der Controller-Aktion:
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
-Der 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
Innerhalb des zweiten Teil ich die div.item haben, die alles umschließt. Also im Grunde möchte ich den Inhalt der Seitenleiste aktualisieren, das ist alles.
Sorry, wenn die Frage albern erscheint und danke im Voraus für Ihre Hilfe.
Problem gelöst dank Wizard of Ogz! XD
danke, werde ich Ihren Link jetzt überprüfen! – Alex
Also ich denke, die response_data ist: render: partial => "Element/sidebar/sidebar_home",: Objekt => @item? – Alex
Ja, es funktioniert großartig Ich werde meinen Beitrag mit der endgültigen Lösung bearbeiten. Vielen Dank Zauberer von Ogz du hast meinen Tag gerettet! – Alex