复选框的PHP循环返回错误

复选框的PHP循环返回错误,php,checkbox,for-loop,Php,Checkbox,For Loop,我目前正在尝试为循环设计一个,以迭代任何“选中”复选框,并从中使用“值”槽中的值来运行一些查询。不幸的是,我很难做到这一点,因为复选框列表不是预定义的,它们是数据库中动态的,等待用户之前的选择 循环实际上用于显示要检查的项目: ?> <input type="checkbox" name="option[]" value="$listing_id"> <font size="+1" color="green"><?php echo"$list_

我目前正在尝试为循环设计一个
,以迭代任何“选中”复选框,并从中使用“值”槽中的值来运行一些查询。不幸的是,我很难做到这一点,因为复选框列表不是预定义的,它们是数据库中动态的,等待用户之前的选择

循环实际上用于显示要检查的项目:

?>
    <input type="checkbox" name="option[]" value="$listing_id">
    <font size="+1" color="green"><?php echo"$list_name"; ?>:</font><br />
<?php
更新查询将在此范围内工作,因为它只是从其他地方复制的,我只需要选中复选框中的“Listing_ID”

我运行此代码是希望进行一些调试:

if(empty($_POST['option'])){
    echo "no checkboxes checked.";
} else {
    if(!isset($_POST['option'])){
        echo "no set.";
    }
}
它返回“未选中任何复选框”


现在,我已经找到了一个灰色区域来解释为什么这个for循环不起作用(这是从互联网上的另一个示例中获取的)。

尝试回显循环中的
$选项,看看值是什么,在那里你可以看到是否有什么

foreach($_POST['option'] as $option) //loop through the checkboxes
{
    echo $option . "<br />";
}
foreach($\u POST['option']作为$option)//循环检查复选框
{
echo$选项。“
”; }
还要确保表单的方法设置为
POST
,或者表单的操作指向正确的位置。您的输入也有错误:

我想你的意思是:

empty($\u POST['option'])
将返回true,如果未设置
$\u POST['option']
(与
!isset($\u POST['option'])
(!)或空数组

如果您需要调试正在发生的事情,请使用
var\u dump($\u POST['option'])
查找已为
选项
复选框提交的内容。我还建议你做一个
var\u转储($\u POST)这样您就可以看到整体提交的内容-例如,如果post操作不是
post
,您将立即注意到)。对于HTML输出:

echo '<pre>', htmlspecialchars(print_r($_POST, true)), '</pre>';

首先,我觉得你的代码好像被窃听了。也许只是一个拼写错误,但是

 <input type="checkbox" name="option[]" value="<?=$listing_id?>"/>

应该是


你的具体问题是什么?我的“具体”问题是,为什么会出现没有选中复选框的情况,以及如果选中复选框,如何在每个复选框中存储“值”。你的代码示例似乎有点混乱。您不应该再使用不推荐使用的
font
标记。您如何提交表单?表单html有效吗?您是否
var\u dump()
ed了$\u POST数组?能否向我们展示您的第一个代码块生成的html?您是否可以在调试代码之前使用
var\u dump($\u POST)
查看您得到了什么?
print\r($\u POST['option')
也会有所帮助。我从不信任数组上的
empty()
。使用您的第一行代码,它会返回以下内容:数组([user\u id]=>20[message\u subject]=>Enquiry[msg]=>test[send\u message]=>send)确保您的复选框是表单的一部分,与此代码相比,您可以随意使用它:没有任何内容得到响应,即使我选中了两个框。@BenLittle尝试使用firebug或web inspector检查HTML,以查看
属性中是否确实有值我已在web inspector中选中,是的,其中有值。这些是我在选中复选框时要提取的值。您是否尝试了
var_dump($\u POST['option'])。如果是,结果是什么。使用上面的返回空值。
foreach($_POST['option'] as $option) //loop through the checkboxes
{
    var_dump($option);
}
 <input type="checkbox" name="option[]" value="$listing_id">
 <input type="checkbox" name="option[]" value="<?=$listing_id?>"/>