質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

943閲覧

PHPで連続する数字のプルダウンを作りたい

himawari39

総合スコア14

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2022/04/13 05:08

PHPで入力フォームを作っています。
①プルダウンを2つ利用してA歳以上B歳以下の絞り込みをしたい
②デフォルトでは22歳以上70歳以下を選択させる
③検索後はA歳以上B歳以下がselectedされた状態にしたい
と思い下記のようなプログラムを書いてみました。

php

1<select class="selectHide" name="AgeMin" id="AgeMin"> 2 <?php for($age = 22;$age <=70;$age++){ 3 if(($_GET['AgeMin']==$age)||(is_null($GET_['AgeMin'] && $age == 22))){ 4 echo "<option selected=\"selected\" value=\"".$age."\">".$age."</option>"; 5 }else{ 6 echo "<option value=\"".$age."\">".$age."</option>"; 7 } 8 }?> 9</select> 10<select class="selectHide" name="AgeMax" id="AgeMax"> 11 <?php for($age = 22;$age <=70;$age++){ 12 if(($_GET['AgeMax']==$age)||(is_null($GET_['AgeMax'] && $age == 70))){ 13 echo "<option selected=\"selected\" value=\"".$age."\">".$age."</option>"; 14 }else{ 15 echo "<option value=\"".$age."\">".$age."</option>"; 16 } 17 }?> 18</select>

しかし初めて検索ボックスを表示させた状態が
22歳以上22歳以下
の選択になってしまい困っています。

php

1if(($_GET['AgeMax']==$age)||(is_null($GET_['AgeMax'] && $age == 70)))ード

の部分が上手くいっていないようなのですがどう改善すればいいでしょうか?
ご教示お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

PHP

1<?PHP 2$agemin=filter_input(INPUT_GET,"AgeMin",FILTER_VALIDATE_INT); 3$agemax=filter_input(INPUT_GET,"AgeMax",FILTER_VALIDATE_INT); 4if($agemax<$agemin) $agemax=""; 5?> 6<form> 7<select class="selectHide" name="AgeMin" id="AgeMin"> 8<option value="">--</option> 9<?PHP 10array_walk(range(22,70),function($x) use($agemin){ 11 $selected=$x==$agemin?" selected":""; 12 print "<option value=\"$x\"$selected>$x</option>".PHP_EOL; 13}); 14?> 15</select> 16<select class="selectHide" name="AgeMax" id="AgeMax"> 17<option value="">--</option> 18<?PHP 19array_walk(range(22,70),function($x) use($agemax){ 20 $selected=$x==$agemax?" selected":""; 21 print "<option value=\"$x\"$selected>$x</option>".PHP_EOL; 22}); 23?> 24</select> 25<input type="submit" value="send"> 26</select>

デフォルト値を調整

PHP

1<?PHP 2$min=22; 3$max=70; 4$agemin=filter_input(INPUT_GET,"AgeMin",FILTER_VALIDATE_INT); 5$agemax=filter_input(INPUT_GET,"AgeMax",FILTER_VALIDATE_INT); 6if($agemax<$agemin) $agemax=false; 7if(empty($agemin)) $agemin=$min; 8if(empty($agemax)) $agemax=$max; 9?> 10<form> 11<select class="selectHide" name="AgeMin" id="AgeMin"> 12<?PHP 13array_walk(range($min,$max),function($x) use($agemin){ 14 $selected=$x==$agemin?" selected":""; 15 print "<option value=\"$x\"$selected>$x</option>".PHP_EOL; 16}); 17?> 18</select> 19<select class="selectHide" name="AgeMax" id="AgeMax"> 20<?PHP 21array_walk(range($min,$max),function($x) use($agemax){ 22 $selected=$x==$agemax?" selected":""; 23 print "<option value=\"$x\"$selected>$x</option>".PHP_EOL; 24}); 25?> 26</select> 27<input type="submit" value="send"> 28</select>

投稿2022/04/13 05:16

編集2022/04/13 05:51
yambejp

総合スコア117605

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

himawari39

2022/04/13 05:20

ご教示ありがとうございます。 根本的に考え方が間違っているということですか?
yambejp

2022/04/13 05:23

一番の間違いは「$GET_」でしょうね
himawari39

2022/04/13 05:28

ありがとうございます、調べてみます。
himawari39

2022/04/13 05:45

すみません、先ほどのPHPを使わせて頂いたのですが ②デフォルトでは22歳以上70歳以下を選択させるのところが どちらも「--」になってしまいます。
yambejp

2022/04/13 05:47

> デフォルトでは22歳以上70歳以下を選択させる ああそういうことですかA=22、B=70がデフォルトってこと
himawari39

2022/04/13 05:47

すみません・・、解決しました。
yambejp

2022/04/13 05:51

調整版を追記しておきました
himawari39

2022/04/13 05:52

ありがとうございます。 大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問