プロが教える店舗&オフィスのセキュリティ対策術

下記の例で、表示されている sample.php にあるチェックボックスを
ON/OFFしてから再計算ボタンを押下後、チェックボックスのON/OFF状態を
引き継いで(維持して)sample.phpを表示させることはできませんか?

「りんご」だけにチェックして再計算ボタンを押下後、再表示された
sample.php は「りんご」だけチェックが入っているイメージです。

<form action="./sample.php" method="post">
<input type="checkbox" name="fruit[]" value="apple">りんご</td>
<input type="checkbox" name="fruit[]" value="orange">みかん</td>
<input type="checkbox" name="fruit[]" value="grape">ぶどう</td>
<input type="submit" name="exec" value="再計算">
</form>

なお、name="fruit[]" は配列になっていて、SQL発行に生かされています。

A 回答 (2件)

私が良く使うのはチェックを配列で管理すること。


これならヒアドキュメントでかけるので
HTMLの部分の可読性がかなりたかく維持できます。

<?PHP
foreach ($_POST["fruit"] as $val){
$checked[$val]="checked";
}
print <<<eof
<form action="$PHP_SELF" method="post">
<input type="checkbox" name="fruit[]" value="apple" ${checked[apple]}>りんご
<input type="checkbox" name="fruit[]" value="orange" ${checked[orange]}>みかん
<input type="checkbox" name="fruit[]" value="grape" ${checked[grape]}>ぶどう
<input type="submit" name="exec" value="再計算">
</form>
eof;
?>
    • good
    • 0
この回答へのお礼

yamabejpさんいつもお世話になっています。

#2さんのアプローチとあわせ、
大変助かりました。
たしかに、HTMLの可読性が高く、
"を\"とかにしなくてすむし、
助かります。

おまけ:
action="$PHP_SELF" ←こんなこともできたのですね(^^;知りませんでした。
こちらも大変助かりました、ありがとうございました。

お礼日時:2006/02/17 18:46

<input type="checkbox" name="fruit[]" value="apple"


<?PHP
foreach ($_POST['fruit'] as $fruit) {
if ($fruit == 'apple') { echo " selected"; }
}
?>
>りんご</td>
以下同じように。
    • good
    • 0
この回答へのお礼

moon_nightさん、早速ありがとうございました。

すばらしいです、おかげさまで解決しました。

大変助かりました。

お礼日時:2006/02/17 18:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!