我有一个代码,它回显了数据库的每一行,旁边有一个复选框。
$result = mysqli_query($database, "SELECT * FROM $imei_to_look_for" );
while ( $row = mysqli_fetch_array($result) ) {
echo htmlspecialchars($imei_to_look_for).
"<input type='checkbox' value='$row[event_number]' name='todelete[]' />";
和另一个,应该遍历所有选中的复选框。
foreach ( $_POST['todelete'] as $delete_id ) { ...
但它给出了“为foreach()提供的无效参数”错误。
有什么建议吗? 谢谢!
答案 0 :(得分:4)
替换
foreach ( $_POST['todelete'] as $delete_id ) { ...
与
if( is_array( $_POST['todelete'] ) ) {
foreach ( $_POST['todelete'] as $delete_id ) { ...
} else {
echo "$_POST['todelete'] is not an array";
}
这可以防止您在没有收到数组时出现代码错误,并帮助您调试POST数据(这显然不是您所期望的那样)。
答案 1 :(得分:2)
该错误通常是由将数组(或其他可迭代对象)以外的东西传递给foreach引起的。
您是否在var_dump
上完成了print_r
或$_POST
以确保todelete []实际上是以数组形式出现的?
答案 2 :(得分:1)
您是否尝试将name ='todelete []'移至select标签?看来你已经在select / options html中的错误位置声明了它。
这里有一个例子: http://www.onlinetools.org/tricks/using_multiple_select.php
答案 3 :(得分:0)
GOT IT! 我忘了那条线! :)))
<form id="form1" name="form1" method="post" action="">