使用easyui和php删除所有选定的行

时间:2014-10-13 04:59:47

标签: php jquery jquery-easyui

我创建了以下函数来获取所有选择并将选定的id发送到另一个php文件(process.php)进行处理。

这是我的功能:

function getSelections(){
            var ss = [];
            var rows = $('#dga').datagrid('getSelections');
            if (rows){
            $.messager.confirm('Confirm','Are you sure you want to delete this user?',function(r){
                    if (r){
                        for(var i=0; i<rows.length; i++){
                            var row = rows[i];
                            ss.push(row.id);
                            }
                        /*$.messager.alert('Info', ss.join('<br/>')); for testing*/
                    $.post('process.php', ss.join({id:row.id}),function(result){
                    if (result.success){
                        $('#dga').datagrid('reload');   // reload the user data
                    } else {
                        $.messager.show({   // show error message
                            title: 'Error',
                            msg: result.msg
                        });
                    }
                },'json');
            }
        });
    } 
}

我想通过process.php中的这个方法获取数据:

$id = intval($_REQUEST['id']);
include 'conn.php';
$N = count($id);
for($i=0; $i < $N; $i++){
$sql = "delete from user where id=$id[$i]";
$result = @mysql_query($sql);
    if ($result){
        echo json_encode(array('success'=>true));
        } else {
        echo json_encode(array('msg'=>'There is error.'));
        }
}

我无法删除多行。我一次只能删除一个用户。请帮我。 我想要实现的目标: 我想一次性删除我的所有选择(使用复选框选择的所有用户)并重新加载网格?下面的答案适用于单个记录,但不适用于多个记录。任何帮助和建议都非常感谢。这是我项目的一部分。

2 个答案:

答案 0 :(得分:0)

尝试

function getSelections() {
    var rows = $('#dga').datagrid('getSelections');
    if (rows) {
        $.messager.confirm('Confirm', 'Are you sure you want to delete this user?', function (r) {
            if (r) {
                var ss = $.map(rows, function (item, idx) {
                    return item.id;
                });
                /*$.messager.alert('Info', ss.join('<br/>')); for testing*/
                $.post('process.php', {
                    'id[]': ss
                }, function (result) {
                    aler(result.success)
                    if (result.success) {
                        $('#dga').datagrid('reload'); // reload the user data
                    } else {
                        $.messager.show({ // show error message
                            title: 'Error',
                            msg: result.msg
                        });
                    }
                }, 'json').fail(function (jxhr, status, error) {
                    alert('error: ' + status + ':' + error)
                });
            }
        });
    }
}

然后

$id = $_POST['id'];
include 'conn.php';
$N = count($id);
for($i=0; $i < $N; $i++){
$sql = "delete from user where id=$id[$i]";
$result = @mysql_query($sql);
    if ($result){
        echo json_encode(array('success'=>true));
        } else {
        echo json_encode(array('msg'=>'There is error.'));
        }
}

答案 1 :(得分:-1)

您可以使用

之类的语句删除多行
DELETE FROM user WHERE id IN (1,2,3,4)

点击here获取完整说明。如果这有帮助,请告诉我!