0

使用 Laravel,在以下场景中,如何将图书 ID 添加到会话中?

@foreach( $books as $book )
    <li>
        {{ $book->name }}
        <a href="#" onClick='addBookToList( "<?= $book->id ?>" )'>Add Book To List</a>
    </li>
@endforeach

这是我的尝试。我知道它不应该以这种方式工作,但我需要如何改变它?

<script>
function addBookToList( bookId )
{
    <? Session::put( 'bookId', bookId ); ?>
}
</script>
4

2 回答 2

2

亚历山大是当场的。我将使用路由来处理请求,但您可以在控制器中使用完全相同的代码。

//routes.php
Route::post('/ajax/add-book', function(){
     Session::put( 'bookId', Input::get('bookId') );
});

您的 html/js 实现很好。这是实现相同目的的另一种方法:

<a href="javascript:void(0)" data-book="<?= $book->id ?>">Add Book To List</a>

在你的 js 文件中

$('a[data-book]').click(function($e){
    $e.preventDefault();
     $.post("/ajax/add-book", {
        "bookId": $(this).data('book')
      });
});
于 2013-02-09T04:35:44.543 回答
0

从未使用过 Laravel,但我相信这些方面的东西可能会起作用:

var addBookToList = function(bookId){
  $.post("session.php", {
    "bookId": bookId
  });
};

<a href="#" onClick='addBookToList( "<?= $book->id ?>" )'>Add Book To List</a>

<?php Session::put( 'bookId', Input::get('bookId') ); ?>
于 2013-02-08T22:05:50.797 回答