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 に答える