我正在尝试为网页上的sql数据库显示的数据实现批量操作功能。我已经将数据回显成html格式,我正在尝试添加一个复选框功能,用户可以在其中选择任意数量的行,然后通过从下拉列表中选择一个值来执行批量操作,例如delete-和所有选定的值将从数据库中删除。虽然在提交执行操作按钮后获得所选复选框值,但我有点磕磕绊绊。我把我的尝试放在下面的代码中 - 我得到了无效的foreach参数提供了错误消息。我很确定它与我的输入循环有关。
非常感谢任何帮助!
//establish connection to database:
require 'DB.php';
$query = mysql_query("SELECT * FROM names", $conn);
echo "<tr>";
//echo results while rows of data remain...
while ($row = mysql_fetch_array($query)) {
echo '<tr><td>' . $row['NAME'] . '</td>';
echo '<td><input type="checkbox" name="checked[' . $row['NAME'] . ']" value="' . $row['NAME'] .'"></td>';
}
?>
</tr>
</table>
</div>
</body>
</html>
<?
if (isset($_POST['perform_action'])) {
//check checkbox values
foreach ($_POST['checked'] as $check) {
echo $check;
}
//do something with the values
if ($_POST['bulk_action'] == 'delete') {
echo "you chose to delete";
}
答案 0 :(得分:0)
if (isset($_POST['perform_action'])) {
$query = mysql_query("SELECT * FROM names", $conn);
while ($row = mysql_fetch_array($query)) {
if (isset($_POST["checked".$row['NAME']])){
//hear you can do anything to your checked checkbox
}
}
}
答案 1 :(得分:0)
在处理发布的数据之前,您需要确保它存在。
在您的代码中,如果您在未选中任何复选框的情况下提交表单,则会面临无效的foreach参数提供消息,因此您需要检查字段$_POST['checked']
是否为然后运行循环。
所以改变
foreach ($_POST['checked'] as $check) {
echo $check;
}
到
//check checkbox values
if(isset($_POST['checked'])){
foreach ($_POST['checked'] as $check) {
echo $check;
}
}