0

次のようにjQueryを使用してページフラグメントをロードするのが好きです:

$(".title" + nid ).click(function() {

   $('.loadNest').load("{{ View::make('postDetails') }}");

});

これは可能ですか?ページの左側に投稿タイトルのリストがあります。ユーザーが投稿のタイトルをクリックすると、投稿のすべての詳細を含むページ フラグメントが右側に読み込まれます。著者、コメントなど...すべて同じページにあります。

4

3 に答える 3

0

jQuery のloadメソッドは実際には AJAX 呼び出しであるため、ビューを出力するルートを設定する必要があります。このようなもの:

Route::get('ajax/postDetails', array(
    'as' => 'postDetailsView', // This is the name of your route
    'do' => function () {
        return View::make('postDetails');
    }
));

次に、コードでは次のようになります。

$('.title' + nid).click(function() { // Use the route's name you setup
    $('.loadNest').load('{{ URL::route('postDetailsView') }}');
});
于 2013-06-25T22:19:28.470 に答える
0

この jQuery コードを使用して、この問題を解決しました。

$(".nestTitle").click(function(e){
    $.ajax({
      url: "getNest",
      context: document.body
    }).done(function(fragment) { 
      $(".loadNest").html(fragment);
    });
});

これは私のルートを次のように呼び出しました:

Route::get('getNest', array('as' => 'getNest', 'uses' => 'NestsController@getNest'));

次に、コントローラーでこれを行いました:

    $nid = 105;
    $uid = Auth::user()->id;
    $nests = Nest::with('user')
    ->where('user_id', '=', $uid)
    ->where("id", $nid)
    ->get();

    return View::make('nestItems', compact('nests'));

パラメータを渡すだけで、うまくいくはずです。助けてくれてありがとうラファエル。

于 2013-06-26T21:14:36.643 に答える