Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';t通过$\u POST访问阵列_Php_Mysql - Fatal编程技术网

Php Can';t通过$\u POST访问阵列

Php Can';t通过$\u POST访问阵列,php,mysql,Php,Mysql,我有以下html代码: <form method="post" action="arrayplay.php"> <input type="checkbox" value="1" name="todelete[]"/> <input type="checkbox" value="2" name="todelete[]"/> <input type="checkbox" value="3" name="todelete[]"/> <input t

我有以下html代码:

<form method="post" action="arrayplay.php">
<input type="checkbox" value="1" name="todelete[]"/>
<input type="checkbox" value="2" name="todelete[]"/>
<input type="checkbox" value="3" name="todelete[]"/>
<input type="checkbox" value="4" name="todelete[]"/>
<input type="submit" value="delete" name="delete"/>
</form>

以及以下PHP脚本: //arrayplay.php
foreach ($_POST['todelete'] as $id)
{
echo $id . "<br/>";
}
?>
foreach($\u POST['todelete']作为$id)
{
echo$id。“
”; } ?>
它应该回显每个元素的值,但是我得到了一个错误。我真的很沮丧。如果我使用:

<form method="post" action="arrayplay.php">
<?php
$dbc= //connection
$query = "SELECT * FROM email_list";
$result = mysqli_query($dbc, $query);
while ($row = mysqli_fetch_array($result)) {
echo '<input type="checkbox" value="' . $row['id'] . '" name="todelete[]" />';
echo $row['first_name'];
echo ' ' . $row['last_name'];
echo ' ' . $row['email'];
echo '<br />';
}
mysqli_close($dbc);
?>
<input type="submit" name="submit" value="Remove" />
</form>


它工作得非常好!为什么?第一个(硬编码html)保存的值与从数据库检索它们的值完全相同。我很难理解如何使用$\u POST从数组中检索值。为什么name=foo[]创建数组?它是关联数组还是数字数组?对于所有的问题,我很抱歉,我真的准备好了。如果您只是将输入命名为foo,它将只得到一个值。由于方括号通常用于数组,
foo[]
是如何在html表单中表示数组的。当然,在PHP方面,您只需将其称为
foo
,正如您从工作示例中所了解的那样。

我已经测试了这一点,它应该可以工作:

<?php
if ($_POST['delete']) {
    foreach ($_POST['todelete'] as $id) {
            echo $id.' selected<br />';
    }
}
?>
<form method="post" action="arrayplay.php">
<input type="checkbox" value="1" name="todelete[]"/>
<input type="checkbox" value="2" name="todelete[]"/>
<input type="checkbox" value="3" name="todelete[]"/>
<input type="checkbox" value="4" name="todelete[]"/>
<input type="submit" value="delete" name="delete"/>
</form>

如果您仍然有问题,您可以尝试:

<?php
if ($_POST['delete']) {
    for ($i = 0; $i < 4; $i++) {
        if (isset($_POST['todelete'][$i])) {
            echo $_POST['todelete'][$i].' selected<br />';
        }
    }
}
?>


<>代码>你得到什么错误信息?也考虑到当我们提到一个错误,但没有提供和/或具体描述时,我们会感到沮丧。错误是什么?有错误消息吗?
我收到一个错误
。请详细说明…如果有疑问,var_将转储变量。输出是什么?请注意,只有选中复选框,才会在$\u POST中传递这些复选框。