PHP - 尝试创建一个复选框数组,

标签 php mysql arrays

我正在尝试从通过 while 循环创建的多个复选框创建一个数组。复选框名为“to_delete[1]”、“to_delete[2]”等。 我尝试过的数组语句如下:

$toDelete = array($_POST['to_delete']);
$toDelete = array($_POST['to_delete'][]);

为了确认有一个数组,我去打印,但发现它是空的print_r($toDelete)。我究竟做错了什么? 代码如下。是的,我正在程序上执行此操作,然后将重写为 OOP。 非常感谢您对此提供的任何帮助!,

$showQ = "SELECT * FROM urls";
$result = mysql_query($showQ);
$numRows = mysql_num_rows($result);
$row = mysql_fetch_array($result);

if(!$result) {
    mysql_error();
   } else {
  echo "<form action='".$_SERVER["PHP_SELF"]."' method='post'>";
  $i=0;
  while($row = mysql_fetch_array($result)) {
    echo "<input type='text' class='manId' name='manId[]' value=" . $row['id'] . " />";
echo "<input type='text' class='url' name='url[]' value=" . $row['url'] . " />";
echo "<input type='checkbox' name='to_delete[" .$i. "]' /><br/>\n";
$i++;
}
echo "<input type='submit' value='delete' name='submit'  />";
echo "</form>";
}
$toDelete = array($_POST['to_delete[]']);
print_r($toDelete);

最终,我想遍历数组,看看检查了哪些,然后从表中删除相应的行。

最佳答案

您不想使用 array() 调用创建数组,而是想访问一个数组。 $_POST 将接收以 [] 结尾的输入名称作为数组,因此 $_POST 中相应的数组键已经是数组了。按照您编写代码的方式,您将分配一个单元素数组,其中包含来自 $_POST 的子数组。相反,请尝试以下操作:

// Test if $_POST['to_delete'] is set and non-empty
// If it's empty, create an empty array, otherwise assign it to $toDelete
$toDelete = empty($_POST['to_delete']) ? array() : $_POST['to_delete'];
print_$($toDelete);

关于PHP - 尝试创建一个复选框数组,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8659814/

相关文章:

php - 如何解决上传到数据库后使用php显示的破损图像

php - sphinx 警告 : source src1: skipped 10 document(s) with zero/NULL ids

php - 另一个表格提交问题

c - 查找数组中整数的最大连续和

php - 如何使用 Codeigniter 以行跨度显示 mysql 数据?

php - 如何在页面加载时自动聚焦 div

php - 用户不更新 Laravel

PHP MYSQL 插入数据时出错

javascript - 数组转换给出字符串而不是数组

javascript - 二维数组上的每个嵌套 Jquery 错误地重复表格单元格