2016-05-26 4 views
0

Ich lerne Laravel und ich habe eine Ansicht mit einer Kontaktliste und innerhalb dieser Tabelle habe ich eine Schaltfläche, um mehr Details über das angeklickte Element anzuzeigen. Ich möchte eine Ansicht innerhalb der aktuellen Ansicht zurückgeben, ich möchte nicht auf eine andere Seite gehen.Wie kann ich die Ansicht innerhalb der aktuellen Ansicht (auf derselben Seite) zurückgeben?

Jemand kann mir erklären, wie kann ich das tun und mir Beispiele davon zeigen, wenn es möglich ist?

Ich versuche schon, das mit Ajax, aber ich weiß jetzt nicht, wie ich eine Ansicht zurückgeben kann, ohne auf andere Seite zu gehen.

$("#detailsItemSize").click(function() 
{ 
    var itemId = $(this).attr('data-id'); 
    alert("details"); 
    alert(url); 
    $.ajax 
    ({ 
     method: 'GET', 
     url: url + "/" + itemId, 
     data: {'itemId': itemId, _token: token }  
    }); 
    .done(function (msg) 
    { 
     console.log(msg['message']); 
    }); 
}); 

Mit freundlichen Grüßen

+0

Der Controller-Code, der 'url +"/"+ itemId" verarbeitet, kann eine Ansicht erstellen und 'rendern', die jQuery dann verwenden kann. Außerdem finde ich es sehr schwer zu glauben, dass du 3 verschiedene Versionen von Laravel verwendest und dein Code ist rein JavaScript/jQuery, das du überhaupt nicht getaggt hast. – apokryfos

Antwort

1

Die Grundvoraussetzung ist, um eine Route zu haben, die Ihre Teilansicht macht:

Route::get('item/{item}', function($itemId){ 
    $someitem = Item::findOrFail($itemId); 
    return view('partial', compact('someitem')); 
}); 

//partial.blade.php 

<h1>Items id is {{$someitem->id}}</h1> 

//main view 

<div id="details></div> 

//js 

$.get('/item/27', function(response){ 
    $('#details').html(response); 
}); 

die #details div auf der Seite wird <h1>the items id is 27</h1> enthalten, wenn die Ajax-Aufruf zurückgibt