如何将javascript数组传递给php laravel4

时间:2014-05-25 11:41:56

标签: javascript php mysql

我正在尝试在laravel4中管理用户。我有用户和复选框的表。我想删除已检查的用户。我以这种方式选择要删除的用户:

var users = new Array();
$("input[type='checkbox']").live("click", function(){
    var id = parseInt($(this).val(), 10);        
    if($(this).is(":checked")) {
        users.push(id);
        alert(users);
    } else {            
        var index = users.indexOf(id);
        users.splice(index, 1);
    }
});

然后我想在我的控制器deleteUsers中删除这些用户。我该怎么办?

在路线中我有这个

Route::get('/worker/delete', 'UsersController@deleteworker'); 

在行动中我有

$userIds = Input::get('checkbox');
        foreach ($userIds as $userId) {
            $user = DB::table('workers')->find((int) $userId);
            if (!empty($user)) {
                $user->delete();
            }
        }

我的ajax调用如下:

$('#delete').click(function(e){

          $.ajax({
            type: "GET",
            url: "worker/delete",
            data: { userIds: users } // users - it you array of user ids
          })
          .done(function() {
            alert("Users deleted");
          });
        });

并且它不起作用

1 个答案:

答案 0 :(得分:0)

首先发送一个ajax请求,如下所示:

$('.btn-selector').click(function(e){
  e.stopPropogate();
  $.ajax({
    type: "GET",
    url: "/worker/destroyByIds",
    data: { userIds: users } // users - it you array of user ids
  })
  .done(function() {
    alert("Users deleted");
  });
});

routes.php中创建特定路线。在指定的操作中执行此操作

$userIds = Input::get('userIds');
foreach ($userIds as $userId) {
    $user = User::find((int) $userId);
    if (!empty($user)) {
        $user->delete();
    }
}