• ベストアンサー

phpのformのvalueの値が英語なのを漢字に変えて表示には。。

もうひとつ質問させてください。 phpで、formのvalueの値を、 value="tokyo" value="oosaka" value="nagoya" としている場合、それを表示するときにはデータベースの値にtokyoと入っているところを"東京"、oosakaとはいっているところは"大阪"というように漢字に変えて表示したいとき、どのようにプログラムを書いたほうがよいのでしょうか? また、こういった場合、valueの値に直接 value="東京"などとしたほうがよいのでしょうか? 何かの本でvalueは英数のほうがよいというのをみて、無理に英語にしているのですが。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

単純にifでもいいですが、いろんなパラメータ を設定したりすることもあるでしょうから switchなどで切り替えるとよいでしょう。 <?PHP switch ($_POST["p"]){ case "tokyo": $place="東京"; $tokyo_checked="checked"; break; case "oosaka": $place="大阪"; $oosaka_checked="checked"; break; case "nagoya": $place="名古屋"; $nagoya_checked="checked"; break; default: $place="未選択"; $tokyo_checked="checked"; } $body.=<<<eof <form action="$PHP_SELF" method="POST"> <input type="radio" name="p" value="tokyo" $tokyo_checked>東京 <input type="radio" name="p" value="oosaka" $oosaka_checked>大阪 <input type="radio" name="p" value="nagoya" $nagoya_checked>名古屋 <input type="submit" value="send"> <hr> 今回${place}が選ばれました<br> というように文中に埋め込めます。 </form> eof; print $body; ?>

その他の回答 (1)

回答No.2

PHPの動いている環境と、出力するページのeuc-jpでしたら、VALUEに日本語を書いても問題ないでしょう。 sjisでもほとんど問題はありませんが、いくつかの文字に問題が起きます。 なお、ifや、switch ですと、選択肢が増えた場合、ソースコードの書き換えが結構大変ですし、デグレードの心配もあります。 valueに、英語を使うのでしたら・・・ 最初に、 $places = array('tokyo' => '東京', 'oosaka' => '大阪', 'nagoya' => '名古屋'); としておいて、 if(!empty($_POST['p'])) { $place = $places[$_POST['p']]; } else { $place = '未選択'; } としたら、いかがでしょう? こうしておけば、選択肢が増えても、最初の配列の初期化を書き換えるだけです。

参考URL:
http://www2d.biglobe.ne.jp/~gama/cgi/jcode/jcode.htm

関連するQ&A