0

如果没有从下面的代码中选择任何复选框,我正在努力生成输出。

HTML - 表单

<label>Item 1:</label><input type="checkbox" name="selected[]" value="Item 1"/>
<label>Item 2:</label><input type="checkbox" name="selected[]" value="Item 2"/>
<label>Item 3:</label><input type="checkbox" name="selected[]" value="Item 3"/>

PHP 代码

<?php
foreach ($_REQUEST['selected'] as $key => $selected) {
echo "$selected";           
}         
?>

代码在选择时输出正确的值,但会生成“未定义的索引:在...中选择”和“为 foreach() 提供的参数无效:”

谁能指出我正确的方向?谢谢

4

1 回答 1

1

您需要在使用之前检查该值是否已设置:

<?php
//$_REQUEST['selected'] is set and is array
if(isset($_REQUEST['selected']) && is_array($_REQUEST['selected'])){
    //Loop it
    foreach ($_REQUEST['selected'] as $key=>$selected) {
        echo htmlspecialchars($selected);
    }
}
?>

Undefined index: extra可能是其他一些错误,但您认为是这样。如果您看到一个Undefined index警告,这意味着您尝试访问未定义的数组键,例如未设置,则可以采取任何方式。

仅供参考:请注意,$_REQUEST将从 $_GET 和 $_POST 接受,如果您不希望从任何一个设置该值,最好更具体,因此如果您在表单中使用 POST,则使用$_POST['selected']

于 2013-02-19T18:22:38.687 回答