jquery — удаление всех выбранных строк с помощью easyui и Stack Overflow

Я создал следующую функцию, чтобы получить весь свой выбор и отправить выбранные идентификаторы в другой файл 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.'));
}
}

Я не мог удалить несколько строк. Я мог удалить только одного пользователя за раз. Пожалуйста, помогите мне.
Чего я хочу добиться:
Я хочу удалить все свои выборы (все пользователи, выбранные с помощью флажка) за один раз и перезагрузить сетку? Ответ ниже работает с одной записью, но не работает с несколькими записями. Любая помощь и предложение с благодарностью. Это часть моего проекта.

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.'));
}
}
0

Другие решения

Вы можете удалить несколько строк, используя оператор как

DELETE FROM user WHERE id IN (1,2,3,4)

Нажмите Вот для полного объяснения. Позвольте мне знать, если это помогает!

-1

По вопросам рекламы [email protected]