あなたの問題は、html がチェックボックスの値を返す方法に関連している可能性が最も高いです。
チェックボックスがチェックインされている場合はその値が返され、チェックインされていない場合は値が返されません。
値と呼ばれるチェックボックスから色を選択する場合name='colours[]'
、次のようになります: (最初の行は選択肢で、2 番目は PHP で返される配列です)
[x] red [ ] green [ ] blue [x] yellow [ ] black [ ] white
array('red','yellow')
[ ] red [ ] green [ ] blue [x] yellow [ ] black [x] white
array('yellow','white')
[ ] red [ ] green [ ] blue [ ] yellow [ ] black [ ] white
null (no array returned)
それを行う1つの方法は、各オプションに異なる名前を使用し、このスタイルで値を確認することです:
$red = isset($_POST['ck_red']);
$green = isset($_POST['ck_green']);
...
name='ck_red'
もちろん、赤いチェックボックスをなどと定義した場合のことです。
編集
(あなたのコードは続きます)
html:
<INPUT TYPE="CHECKBOX" NAME="areas[]" VALUE="1">The Homeless</INPUT><BR />
<INPUT TYPE="CHECKBOX" NAME="areas[]" VALUE="2">The Elderly</INPUT><BR />
<INPUT TYPE="CHECKBOX" NAME="areas[]" VALUE="3">Refugees</INPUT><BR />
<INPUT TYPE="CHECKBOX" NAME="areas[]" VALUE="4">The handicapped</INPUT><BR />
php:
$areas[] = "$_POST[areas]";
foreach ($areas as $value) {
echo $value . " ";
}
回答: 割り当てにエラーがあります。$areas[] = "$_POST[areas]";
つまり"
、$_POST[areas]
- を使用することで、配列である変数 $_POST[areas] のテキスト値と php の方法を知りたいことをパーサーに伝えています。これを処理するには、(javascript の例のように) カンマで区切られた要素のリストではなく、TEXT 'array'を返します。他のエラーは、あなたが持っているように機能しますが、 (キー名を一重引用areas
符で囲んでいることに注意してください。最後の間違いは、( なしで'areas'
$_POST['areas']
'
$_POST['areas']
$areas[]
$areas
[]
)。そこで行っているのは、配列の新しい要素を配列 (領域) に追加して、値を割り当てている$_POST['areas']
ため、最初のエラー ( "
) がない場合に備えて、2 次元配列が作成されます。areas => array(array('a','b','c'))
修正 (php):
$areas = $_POST['areas'];
foreach ($areas as $value) {
echo $value . " ";
}