Modefy フォームのチェックボックス

2014年8月22日 | Modefy | コメント (0)

PHPでチェックボックスを設置する場合、チェックボックスだけだと、チェックが入ったものしか取得できません。そこで、ネット上では、よくhiddenで同じものを用意する技が紹介されています。

それを応用し、用意されたアイテムにチェックが入っているかどうかがわかるようにしてみました。

例えば、下記のように$itemという配列を用意し、これらにチェックが入っているかどうかを調べたいと思います。

$item = array('1', '2', '4', '6', '8');

チェックボックスのnameは配列に、並行してhiddenでアイテムを埋め込んでおきます。

$i=1;
for ($i=1; $i<5; $i++) {
echo '<input type="hidden" name="test_item['.$i.']" value="'.$item[$i].'">';
echo '<input type="checkbox" name="test['.$i.']" value="'.$item[$i].'" checked>'.$item[$i];
} else {
echo '<input type="hidden" name="test_item['.$i.']" value="'.$item[$i].'">';
echo '<input type="checkbox" name="test['.$i.']" value="'.$item[$i].'">'.$item[$i];
}

データを取得する側。

// まずチェックボックスの内容を取得。
$data1 = $_POST["test"];

// チェックボックスの内容を見て、チェックが入っているものに 1 を代入する。
foreach ($data1 as $chkd) {
$chk[$chkd]=1;
}

// hiddenのほうは、アイテムのすべてが格納されています。
$data2 = $_POST["test_item"];
foreach ($data2 as $item2) {
// 中身を除くと、$item2にはアイテムが入っていて、$chk[$item2]には、チェックされていたら1、チェックが入っていなかったら0が入っている。
echo $item2.' -> '.$chk[$item2].'<br>';
}

アイテム名でチェックを確認できるようにしてあるのが、ポイントです。


[464 Viewd (RSS: 134)] [Edit]
記事情報
  • 投稿日:
  • 更新日:
リンクソース
■記事用リンクソース:

■Wiki用リンクソース(PukiWiki):

■Wiki用リンクソース(MediaWiki):

■短縮URL:
コメントの追加









名前、アドレスをブラウザに記憶させますか?


※投稿には、名前とメールアドレスが必要です。
※メールアドレスは、表示されません。
※コメントにはタグは使えません。
※コメント中のURLは自動的にクリッカブルに変換します。





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



同カテゴリの人気記事
マイブログアンテナ
Feeds
EarlGrey Tearoom
メアド
counter
Powered by Movable Type