多选 然后 全部 删除 或者 更新, 有什么好的办法吗?

如题, 如果 列表 的每一条有一个按钮 操作, 还好处理, 多个的话, 怎么写 controller 中的 update() 和 destroy 呢
已邀请:

豁达于心

赞同来自: lss876

@lss876:
Laravel的删除是以伪DELETE方式提交的,你可以如下,
<form method="POST" action="destroy" role="form">
<input name="_token" value="sadfasdfsadfsadfsaf" type="hidden"> /* Larave自动生成的 */
<input name="_method" value="DELETE" type="hidden"> /* Larave自动生成的 */
<input name="ids[]" type="checkbox" value="1">
<input name="ids[]" type="checkbox" value="2">
<input name="ids[]" type="checkbox" value="3">
<input type="submit" value="删除选中">
</form>

不过个人觉得以Ajax提交比较好,以下是我写的ajax,不足之处见谅!
/*
* Ajax GET 删除选中
* 用法:<button type="button" class="ajax-delete-chosen" data-token="Laravel自动生成的token" data-href="你要链接到删除的url地址">删除选中</button>
*/
$('.ajax-delete-chosen').click(function(e) {
    e.preventDefault();
    var _ids = new Array();
    var _url = $(this).attr('data-href'),
        _btn = $(this),
        _token = $(this).attr('data-token');

    //获得选中的input
    $('input[type="checkbox"][name="ids[]"]:checked').each(function(){ 
        _ids.push([$(this).val()]); 
    }); 

    if ( _ids.length == 0 ) {
        alert('你还没有选择任何内容!');
        return false;
    }

    if (confirm('您确定要执行此操作吗?请慎重!') == true) {
        _btn.attr("disabled", true);
        $.ajax({
            type: 'POST',
            url: _url + '/' + _ids,
            data: {'_token':_token,'_method':'DELETE'},
            dataType: 'json',
            beforeSend: function(){
                _btn.attr("disabled", true);
            },
            success: function(data){
                if (data.status) {
                    alert('ok');
                    location.reload();
                } else {
                    alert('no');
                    _btn.attr("disabled", false);
                }
            },
            error: function(){
                alert('Oh My God! 出错了,请稍候再试....');
                _btn.attr("disabled", false);
            }
        });
    }
    return false;
});

有问题再问!

豁达于心

赞同来自:

更新你可以放数组里循环
删除直接User::destroy(array(1, 2, 3));User::destroy(1, 2, 3);就行~里面的数字为主键

要回复问题请先登录注册