• ベストアンサー

ラジオボタンの値を受け取ってPHPで表示する初歩的文法

global_register=offの設定で、 HTML検索フォームのチェックボックスから <input type="radio" name="select" value="male">男 <input type="radio" name="select" value="female">女 を受け取り、それに応じて値を書き換える方法をご教示ください。 「$_POST['select']の値がmaleなら「男」femaleなら「女」という具合です。 if ($_POST['select'] = '$male') { print $male; みたいなことをやってみたんですが、ダメっぽいと思ったらダメでした(^^;

  • PHP
  • 回答数6
  • ありがとう数5

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.6

こんにちは。 >$gender['male'] = "男"; >$gender['female'] = "女"; >$sql .= " ORDER BY $gender[$_POST['select']]"; >とやると、MySQLに >Parse error: parse error, unexpected '[', expecting ']' >in /usr/local/apache/***.php on line ** >と怒られてしまいます。 >あと一歩のような感じがするのですが、、、 >何か間違ってますでしょうか? $sql .= " ORDER BY " . $gender[$_POST['select']]; としてみて下さい。 $sqlの内容を出力してみるとエラーが発見しやすいですよ。

litton101
質問者

お礼

LancerVIIさん、何度もすみませんです。 $sqlは出力してたのですが、気づきませんでした(^^;。 おかげさまで、無事ラジオボタンの値をとってくることが できました。 一連の件、本当に勉強になりました。 みなさまに心より御礼申し上げます。

その他の回答 (5)

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

普通にswitchすればよいんじゃないすか? <?PHP $select=$_POST["select"]; if ($select=="") $select="age10"; $checked[$select]="checked"; switch($select){ case "age10": $text="10代の文書"; break; case "age20": $text="20代の文書"; break; case "age30": $text="30代の文書"; break; case "age40": $text="40代の文書"; break; case "age50": $text="50代の文書"; break; case "age60": $text="60代の文書"; break; } $body.=<<<eof <form method="POST" action="$PHP_SELF"> <input type="radio" name="select" value="age10" $checked[age10]>10代 <input type="radio" name="select" value="age20" $checked[age20]>20代 <input type="radio" name="select" value="age30" $checked[age30]>30代 <input type="radio" name="select" value="age40" $checked[age40]>40代 <input type="radio" name="select" value="age50" $checked[age50]>50代 <input type="radio" name="select" value="age60" $checked[age60]>60代 <input type="submit" value="send"> </form> <hr> $text eof; print $body; ?>

litton101
質問者

お礼

yambejpさん、いつもいつも、 懇切丁寧なご指導をいただき、本当に感謝にたえません。 swich文というのは、過去にC#の勉強をした(けど挫折した)ときにも 出てきましたので、なんとなくわかります。 他の方のレスも一つ一つから試していったところ、#2さんの 連想配列の方法で何とか解決できそうです。 とはいえ、今後大変有用な方法だと思いますので、 参考にさせていただきます。 今後ともよろしくお願い致します。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.4

こんにちは。 申し訳ない、追加です。 html側のvalueが変えられないとなるとNo2さんの方法を使用してやればいいと思います。(連想配列) 受け取るデータの形をうまく設計してあげると、コーディング等が楽になる場合もあります。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.3

こんにちは。 後のデータの使い方にもよりますが・・・・ 例えば10代、20代・・・・という選択で10とか20という情報を使いたいなら <input type="radio" name="select" value="10">10代 <input type="radio" name="select" value="20">20代 ・ ・ ・ というようにvalueの値を使いたい値にしてしまえば $age = $_POST['select']; これで選択された10やら20やらがそのまま$ageに入りますので使用できます。 例:print $age . "代" 前の質問のようになにか別の形で使いたいとなると前のような形でも 出来ますが選択項目数が増えたりするといちいちifを増やさないといけないので 次の方法等があります。 <input type="radio" name="select" value="0">10代 <input type="radio" name="select" value="1">20代 <input type="radio" name="select" value="2">30代 <input type="radio" name="select" value="3">40代 $ageArray = array ( "10代", "20代", "30代", "40代" ); $age = $_POST['select']; print $ageArray[$age]; 10代が選択されると$_POST['select']には0が入ってきます。 $ageArray[0]には10代という文字列が入っているのでそれが表示できます。 40代なら3が入ってきて$ageArray[3]に40代が入っているのでそれが表示できます。 この方法ですと、仮に選択項目が100個あったとしたらvalueの数字を順次増やしていき、受け取るほうで配列にて項目を用意するだけなので応用が利きます。

litton101
質問者

お礼

LancerVIIさん、たびたびありがとうございました。 valueを0,1,2...にしてもイケそうな感じだったので いろいろ修正しながら適用してみたのですが、 valueの値が他のjavascriptでも使われているため、 撃沈してしまいました。。。 とはいえ、考え方は大変参考になりました。 本当にありがとうございました。

  • jocole
  • ベストアンサー率14% (1/7)
回答No.2

$gender['male'] = "男"; $gender['female'] = "女"; print $gender[$_POST['select']]; はどうでしょ?

litton101
質問者

補足

jocoleさん、アドバイスありがとうございます。 最初#3さんの方を試したのですが #4さん(=#3さん)もおっしゃるように html側のvalueが変えられない問題があり、 jocoleさんの方法を採らせていただいたのですが、 $gender['male'] = "男"; $gender['female'] = "女"; $sql .= " ORDER BY $gender[$_POST['select']]"; とやると、MySQLに Parse error: parse error, unexpected '[', expecting ']' in /usr/local/apache/***.php on line ** と怒られてしまいます。 あと一歩のような感じがするのですが、、、 何か間違ってますでしょうか?

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 > if ( $_POST['select'] = '$male' ) まずif内での比較は=でなく==になり、$maleには何が入っているかわかりません。 また、$_POST['select'] にはmaleかfemaleが入ってくるので $sexStr = ""; if ( $_POST['select'] == "male" ) { $sexStr = "男"; } else { $sexStr = "女"; } でいいのではないでしょうか?

litton101
質問者

補足

LancerVIIさん、早速のご教示ありがとうございます。 すみません、質問の単純化のため、男/女の二択な例で 質問してしまいましたが、実際は14のラジオボタンからの択一です。 例えば、以下の例のように増えるとどのような感じになりますでしょうか。 <input type="radio" name="select" value="age10">10代 <input type="radio" name="select" value="age20">20代 <input type="radio" name="select" value="age30">30代 <input type="radio" name="select" value="age40">40代 <input type="radio" name="select" value="age50">50代 <input type="radio" name="select" value="age60">60代 すみません、ご教示いただけますと誠に幸いです。

関連するQ&A

  • ラジオボタンの値を・・・・・

    <html> <head> <script language="javascript"> function osu(){ document.form1.text1.value=document.form1.radio1.value; } </script> </head> <body> <form name="form1"> <input type="radio" name="radio1" value="男" checked>男 <input type="radio" name="radio1" value="女">女 <input type="button" value="押す" onClick="osu()"> <input type="text" name="text1"> </form> </body> </html> ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 上記のプログラムは、選択されたラジオボタンの値をテキストボックスに表示させるプログラムなんですが、何故かラジオボタンの値が表示されず、「undefined」というのが表示されます。 どうすれば、「男」または「女」という値を表示させることができますか? ちなみにこれは、「○○○.html」で保存します

  • 携帯サイトでフォームタグとラジオボタンを使用したPHPについて

    PHP超初心者の質問です。 ほんと初歩的な質問ですが、教えていただけたらうれしいです。 携帯サイトで <form method="post" action="example.php"> <p> <input type="radio" name="select" value="male">男 <input type="radio" name="select" value="female">女 </p> <p><input type="submit" value="送信する"></p> </form> で男性、女性それぞれチェックして送信すると 男性には男性用のサイト、女性には女性用のサイトのURLに 飛ぶようにしたいのですが、example.phpにどのように 記述すればいいか分かりません。 また、上記とは別で同じ動作でサイトではなくて男性用mail to 女性用mail toが開くようにもしたいのですが、勉強を始めたばかり の付け焼刃で色々検索して考えてみるのですが、根本的に理解が 未熟すぎて、結局example.phpにどのように記述するべきか 分かりません。 お手数ですが、教えていただける方いらっしゃいましたら どうかよろしくお願い致します。

    • 締切済み
    • PHP
  • 選択したたラジオボタンの値をSUBMITボタンに

    選択したたラジオボタンの値をSUBMITボタンの名前として自動的に替えたいのですが、助言をいただけますか。 イメージは下記です。★の部分に、クリックごとにradioの値を入れたいのです。 <script Language="JavaScript"><!-- function set() { n = document.myFORM.Radio.value; } // --> </script> <FORM ACTION="add.cgi" METHOD="POST" name="myFORM"> <INPUT TYPE="RADIO" NAME="Radio" VALUE="東京" onclick="set()" CHECKED> <INPUT TYPE="RADIO" NAME="Radio" VALUE="大阪"> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="★"></form>

  • ラジオボタンでうまくするには・・・・

    初めまして。 現在下記のプルダウン形式で、一つの価格が同じなので問題なく動くのですが <FORM action="cart/sys/cart.cgi" method="post"> <INPUT type=hidden value=005 name=num> <INPUT type=hidden value=●●● name=name> <INPUT type=hidden value=2000 name=tan> <SELECT name=sur> <OPTION value="" selected>購入数量</OPTION> <OPTION value=1>1</OPTION> <OPTION value=2>2</OPTION> <OPTION value=3>3</OPTION> <OPTION value=4>4</OPTION> <OPTION value=5>5</SELECT> <INPUT type=submit value=カートに入れる> </FORM><BR> <FORM action="・・・/cart.cgi" method="post"> <INPUT type=hidden value=005 name=num> <INPUT type=hidden value=●●● name=name> <INPUT type=hidden value=2000 name=tan> </FORM> 同じ商品で1・2・3・4・5のそれぞれに単価が変わる設定をしたいのですが、うまくいく方法が見つからないです。 ラジオボタン形式で作ってみたものの・・・・ <FORM action="・・・/cart.cgi" method="post"> <INPUT type=hidden value=005 name=num> <INPUT type=hidden value=●●● name=name> <INPUT type=submit value=カートに入れる> </FORM> <FORM> <INPUT type="radio" name="name1" value="2000">1袋<BR> <INPUT type="radio" name="name1" value="3900">2袋<BR> <INPUT type="radio" name="name1" value="5800">3袋<BR> <INPUT type="radio" name="name1" value="7500">4袋<BR> <INPUT type="radio" name="name1" value="8500">5袋</FORM> としてみましたがうまくいきません。 なにか方法ございましたら、ご教授いただければと思います。

    • ベストアンサー
    • HTML
  • VBA IE ラジオボタンにチェックをつけたい

    エクセルvbaでIE操作をしているのですが、 -------------------------------------------------------- <tr> <th><span class="asterisk">*</span>&nbsp; <label for="sex">性別:</label></th> <td> <input type="radio" name="gender" value="m" id="male" tabindex="1000"> <label for="male">男性</label> <input type="radio" name="gender" value="f" id="female"> <label for="female">女性</label> </td> </tr> -------------------------------------------------------- のソースで、男性にチェックを入れたいのですが、 どのようなVBAコードを書けばいいのでしょうか? objIE.document.all.gender.Value = "m" だとエラーになってしまいます。 ご教授よろしくお願いします。

  • ラジオボタンについて

    ラジオボタンのオブジェクトにcheckedプロパティはあるのでしょうか? ラジオボタンは基本的に1つしか、値を取らないので 例えば以下の場合、可にチェックがあれば、kokugoの値は「可」 ということでしょうか? <input type="radio" name ="kokugo" value="優">優 <input type="radio" name ="kokugo" value="良">良 <input type="radio" name ="kokugo" value="可">可 <input type="radio" name ="kokugo" value="不可">不可

  • ラジオボタンの値

    プログラミング初心者です。ラジオボタンの値を数値として取得して、それを計算に活かしたいのですが、、、うまくいきません。radioChange()で数値を取得したのですが、calcでその変数を使うには以下でおかしいでしょうか? よろしくおねがいしますm(__)m <html> <body onload="radioChange()"> <SCRIPT LANGUAGE="JavaScript"> function radioChange(num) { xx = num.value; xx = parseInt(xx); } function calc() { radioChange(); document.write(xx * 100); } </SCRIPT> <form name="form1"> <input type="radio" name="radio1" value="1" onclick="radioChange(this)"> <input type="radio" name="radio1" value="2" onclick="radioChange(this)"> <input type="radio" name="radio1" value="3" onclick="radioChange(this)"> </form> </body> </html>

  • ラジオボタンによる有効なボタンの切り替えについて

    はじめまして。 下記のような機能を実装したいと思っています。 どなたか教えていただけませんでしょうか? <html> <head> <title>サンプル</title> </head> <input type="radio" name="radio1" value="a">A <input type="radio" name="radio1" value="b">B <input type="radio" name="radio1" value="c">C <input type="radio" name="radio1" value="x">全部ダメ <br><br> <input type="button" value="Aボタン"> <input type="button" value="Bボタン"> <input type="button" value="Cボタン"> </body> </html> ラジオの「A」を選択すると「Aボタン」のみ有効で他は無効(disabled)になり 「B」を選択すると「Bボタン」のみ有効というように、 選択したラジオボタンの値と有効なボタンを連動させたいのです。 さらに、ラジオの「全部ダメ」を選択すると全てのボタンを無効としたいです。 ラジオボタンの値の取得のjavascriptなど個々の機能について調べてみたりしたのですが どのように組み合わせれば、機能を実現できるのかわかりませんでした。 お手数ですが、ご教示いただけますでしょうか。。 可能ならばソースのサンプルをいただけるとありがたいのですが。 どうぞよろしくお願いいたします。

  • jqueryでラジオボタンの値を取得

    <input name="nr" value="0" type="radio" />いない <input name="nr" value="1" type="radio" />いる の選択に応じて400円の金額を追加するプログラムをjqueryで作成しようとしています。 ラジオボタンの選択の値を取得することが出来ません。どのようにしたら良いでしょうか? 教えてください。 よろしくお願いします。

    • ベストアンサー
    • AJAX
  • PHPのコードがブラウザに剥き出しで表示される。

    先日、VertrigoをインストールしたWindows7でPHPの勉強を始めた初心者です。 教則本が届いたので、さっそく本に書いてある通りにコードを入力していたのですが、最初は正しく表示されたものが下記のようにブラウザにphpのコードが剥き出しに表示されるようになりました。 ↓表示結果 性別は? ' .$male. ' ' . "\n"; echo ' ' .$female.''."\n"; ?> 調べてみても原因がわかりません。.iniの設定も本に書いてある通り作業したのですが…。 何が原因なのでしょうか? 一応、入力したコードの一部も載せておきます。 <form action="question2.php" method="post"> <dl class="clearfix"> <dt>性別は?</dt> <dd> <?php $male = '男性'; $female= '女性'; $number = array('1','2'); echo ' <label><input type="radio"name="gender" value="'.$number[0].'" />' .$male. '</label> ' . "\n"; echo ' <label><input type="radio" name="gender" value="'.$number[1].'"/>' .$female.'</label>'."\n"; ?> 是非回答お願いします。

    • 締切済み
    • PHP

専門家に質問してみよう