2010年10月22日

[PHP-users 35374]チェックボックスにチェックがない場合

久光と申します

<input type="checkbox" name="hoge[]" value="1">
<input type="checkbox" name="hoge[]" value="2">

という形でチェックボックスの値を配列で取得するとして、これとは別にhogeの更新を確認しない画面からもデータの入力が想定されるとすると$_REQUEST['hoge']が存在しない場合に


(1)hogeの全てにチェックマークがついてない(hogeを空値に更新する)
(2)hogeの更新を確認しない画面からデータがきている(hogeは更新しない)

の区別をして適切に処理する必要があります。そこで

<input type="hidden" name="hoge[]" value="no data">
<input type="checkbox" name="hoge[]" value="1">
<input type="checkbox" name="hoge[]" value="2">

というようにhiddenで適当な値を必ず送るようにして

if (isset($_REQUEST['hoge'])) {
if (count($_REQUEST['hoge']) === 1 and $_REQUEST['hoge'][0] === 'no data') {
// hiddenに入れたno dataだけがきているのでhogeを空値にする
} else {
// no data以外のhoge配列で値を更新する
}
}

という形で処理しようと考えているのですが、他になにかよく使われる方法があるでしょうか。


_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2010年10月22日 15:09
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/99398
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。