单击时将项添加到会话

时间:2013-02-08 21:45:56

标签: jquery laravel

使用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>

2 个答案:

答案 0 :(得分: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')
      });
});

答案 1 :(得分: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') ); ?>