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

HTMLで作成したテキスト、セレクト、チェックボックスなどに、選択されたもの全てをPOST送信で受け取って
PHPにてパラメータをチェックしてから
確認画面(HTML)に表示してPHPにてDB登録するというプログラムを作ってます。

HTML側で
<input type="checkbox" name="genre[0]" value="1" >国語
<input type="checkbox" name="genre[1]" value="2" >算数
<input type="checkbox" name="genre[2]" value="3" >理科
 <input type="checkbox" name="genre[3]" value="4" >社会
として例えば、
<?php
$genre = $_POST["genre"];
foreach ($genre as $key => $value){
print($value);
}
?>
で表示するとチェックした数字が表示されます。
(国語をチェックした場合 1)
これを 国語 と表示させるにはどうすればいいんでしょうか?
DBに登録する際は数字でいいんですが。

A 回答 (2件)

>HTML側で



<input type="checkbox" name="genre[]" value="1" >国語
<input type="checkbox" name="genre[]" value="2" >算数
<input type="checkbox" name="genre[]" value="3" >理科
<input type="checkbox" name="genre[]" value="4" >社会

としておいて、対比表で処理します

<?php
$kamoku=Array(1=>"国語",2=>"算数",3=>"理科",4=>"社会");
$genre=$_POST["genre"];
foreach ($genre as $key => $value){
print($kamoku[$value]);
}
?>

場合によっては

<input type="checkbox" name="genre[]" value="国語" >国語
<input type="checkbox" name="genre[]" value="算数" >算数
<input type="checkbox" name="genre[]" value="理科" >理科
<input type="checkbox" name="genre[]" value="社会" >社会

とする手もありますが、ユーザーから送られてくるデータは信じられないので
あまり良いやりかたとは言えません。

この回答への補足

ありがとうございます。やりたいことが出来ました!
複数選択した場合に確認画面では
国語算数
と表示されるんですがカンマなりスペースを入れる場合はどのようにしたらいいんでしょうか?

補足日時:2009/10/22 16:49
    • good
    • 0

<?php


$kamoku=Array(1=>"国語",2=>"算数",3=>"理科",4=>"社会");
$genre=$_POST["genre"];
$str="";
foreach ($genre as $key => $value){
if($str!="") $str.=",";
$str.=$kamoku[$value];
}
print($str);

?>

みたいな感じでどうでしょう?

?>
    • good
    • 0
この回答へのお礼

ありがとうございました!完璧です。
まだまだ聞きたいことはたくさんありますが、この質問の投稿で聞きすぎるのもあれなので…。
本当に助かりました。

お礼日時:2009/10/22 17:28

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