为foreach()提供的参数无效

时间:2010-04-12 13:26:38

标签: foreach php

我有一个代码,它回显了数据库的每一行,旁边有一个复选框。

$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()提供的无效参数”错误。

有什么建议吗? 谢谢!

4 个答案:

答案 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="">