当我使用php显示时,我有多行新闻。我正在尝试使用每行旁边的复选框同时删除多行。
这是我的php代码
<?
$select_news = $mysqli->query("SELECT * FROM news order by time desc limit $x,$numbershownews");
while ($rows_news = $select_news->fetch_array(MYSQL_ASSOC)){
$id_news = $rows_news ['id'];
$title_news = $rows_news ['title'];
?>
<table>
<tr rel="<? echo $id_news; ?>">
<td class="tdtable" id="<? echo $id_news; ?>" width="4%">
<input type="checkbox" rel="<? echo $id_news; ?>" name="checkbox[]" class="checkboxtable" value="<? echo $id_news; ?>">
</td>
<td class="tdtable" id="<? echo $id_news; ?>" width="50%">
<? echo $title_news; ?>
</td>
</tr
</table
<?
}
?>
<button class="deletecheckednews">Delete</button>
这是jquery代码
$(".deletecheckednews").on( 'click', function () {
var arr = new Array();
$(".checkboxtable:checked").each(function () {
arr.push($(this).attr("rel"));
});
if(arr == "") {
alertify.error("no selected news");
} else {
$.ajax({
type: "POST",
url: "action/delete_multiple_news.php",
data: arr ,
cache: false,
success: function(data) {
alertify.success(data);
$.each(arr, function(key, value) {
$("tr[rel="+value+"]").fadeOut();
});
}
});
}
return false
});
如何将此数组传递给“delete_multiple_news.php”?我试过这个$checkedneww = $_REQUEST['arr'];
和$checkedneww = $_POST['arr'];
,但它不起作用。我该如何删除选定的行?
答案 0 :(得分:1)
在
$.ajax({
type: "POST",
url: "action/delete_multiple_news.php",
data: {"array_del": arr} , / <-
cache: false,
success: function(data){
alertify.success(data);
在PHP中使用
$array_del = filter_input(INPUT_POST, 'array_del', FILTER_SANITIZE_STRING);
如果您想看到结果,请执行以下操作:
在PHP中ajax:
$array_del = filter_input(INPUT_POST, 'array_del', FILTER_SANITIZE_STRING);
echo json_encode($array_del);
在js:
$.ajax({
type: "POST",
url: "action/delete_multiple_news.php",
data: arr ,
cache: false,
success: function(data){
alertify.success(data);
console.debug(data);
//$.each(arr, function(key, value) {
// $("tr[rel="+value+"]").fadeOut();
//});
}
});
要删除,可以使用sql中的WHERE过滤要删除的结果示例。如果结果多于一个,则创建循环或通信列。
$mysqli->query(DELETE FROM table_name WHERE some_column = $array_del[some_column]);
答案 1 :(得分:0)
你在ajax调用(data: arr
)中传递一个原始数组,但是你期望一个命名变量($_POST['arr']
)。
我不确定jquery是否可以使用data: arr
(多年来没有使用它)但是如果是,那么你要找的ids数组只是$_POST
整体。
如果情况并非如此,或者您想要$_POST['arr']
,则应将JS更改为data: {arr: arr}
。