
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;
みたいなことをやってみたんですが、ダメっぽいと思ったらダメでした(^^;
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の内容を出力してみるとエラーが発見しやすいですよ。
LancerVIIさん、何度もすみませんです。
$sqlは出力してたのですが、気づきませんでした(^^;。
おかげさまで、無事ラジオボタンの値をとってくることが
できました。
一連の件、本当に勉強になりました。
みなさまに心より御礼申し上げます。
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;
?>
yambejpさん、いつもいつも、
懇切丁寧なご指導をいただき、本当に感謝にたえません。
swich文というのは、過去にC#の勉強をした(けど挫折した)ときにも
出てきましたので、なんとなくわかります。
他の方のレスも一つ一つから試していったところ、#2さんの
連想配列の方法で何とか解決できそうです。
とはいえ、今後大変有用な方法だと思いますので、
参考にさせていただきます。
今後ともよろしくお願い致します。
No.4
- 回答日時:
こんにちは。
申し訳ない、追加です。
html側のvalueが変えられないとなるとNo2さんの方法を使用してやればいいと思います。(連想配列)
受け取るデータの形をうまく設計してあげると、コーディング等が楽になる場合もあります。
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の数字を順次増やしていき、受け取るほうで配列にて項目を用意するだけなので応用が利きます。
LancerVIIさん、たびたびありがとうございました。
valueを0,1,2...にしてもイケそうな感じだったので
いろいろ修正しながら適用してみたのですが、
valueの値が他のjavascriptでも使われているため、
撃沈してしまいました。。。
とはいえ、考え方は大変参考になりました。
本当にありがとうございました。
No.2
- 回答日時:
$gender['male'] = "男";
$gender['female'] = "女";
print $gender[$_POST['select']];
はどうでしょ?
この回答への補足
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 **
と怒られてしまいます。
あと一歩のような感じがするのですが、、、
何か間違ってますでしょうか?
No.1
- 回答日時:
こんにちは。
> if ( $_POST['select'] = '$male' )
まずif内での比較は=でなく==になり、$maleには何が入っているかわかりません。
また、$_POST['select'] にはmaleかfemaleが入ってくるので
$sexStr = "";
if ( $_POST['select'] == "male" ) {
$sexStr = "男";
} else {
$sexStr = "女";
}
でいいのではないでしょうか?
この回答への補足
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- PHP $_SESSIONについて教えて下さい。 2 2023/03/02 09:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DBの値をリストボックスの初期...
-
携帯電話HP作成。
-
リストボックスを使って検索フ...
-
データベースにある値でリスト...
-
ラジオボタンの値を受け取ってP...
-
現在時刻を反映させた時刻のプ...
-
PHPでMySQLを利用した予約カレ...
-
連動させたいセレクトボックス...
-
MySQLのレコードを検索、...
-
プルダウンで選択された値を保持
-
質問です!
-
選択したタグ、入力した検索文...
-
cachegrind.out.から始まるファ...
-
RDFの名前空間の要素をxpathで...
-
phpでカレンダー作成
-
input type="hidden"で送る値を...
-
PHPでURLにジャンプするには?
-
Submit(送信ボタン)を押した...
-
phpのswitch文
-
PHP
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数 selectフォームから今回on...
-
セレクトしたときに全て初期状...
-
input type="hidden"で送る値を...
-
phpでのセレクトボックスの値を...
-
【PHP&JavaScript】複数の別ウ...
-
ドロップダウンで送信先を変更...
-
PHPとpostgreSQL プルダウンの作成
-
現在時刻を反映させた時刻のプ...
-
PHP で画面の一部だけを変えたい。
-
MySQLのレコードを検索、...
-
複数のセレクトボックスを1つに...
-
「"」(ダブルクォーテーション)...
-
コンボボックス(プルダウン)...
-
連動させたいセレクトボックス...
-
PHP セレクトボックスの値 GET...
-
PHP
-
<select>文、foreachと初期値設定
-
1つのformで2つのactionをさせ...
-
phpのプルダウンメニューで選ん...
-
複数のセレクトボックスで
おすすめ情報