PHPとHTMLで、年月をプルダウンメニューで選択してその年月のカレンダーを表示させるものを作ろうとしています。
プルダウンメニューで選択した年月をinputのsubmitを使いurlに送信し、その値を$_GET[]で取得するような仕組みを作りました。
<form method="post"> <p> <label for="year">年</label> <select id="year" name="year"> <option value="" selected></option> <?php for($i=1980; $i <= 2019; $i++){ echo "<option value='$i'>{$i}</option>"; } ?> </select> <label for="month">月</label> <select id="month" name="month"> <option value="" selected></option> <?php for($i=1; $i <= 12; $i++){ echo '<option value='.sprintf('%02d', $i).'>'.sprintf('%02d', $i).'</option>'; } ?> </select> <input type="submit" value="検索" formaction="/?t=<?php echo $_POST['year'].'-'.$_POST['month']; ?>"> </p> </form>
(PHP側で$_GET['t'];としてurlから年月を取得して、カレンダーを表示する仕組みです。)
ただ、年月を選択した後にsubmitを二回クリックしないと選択した年月に遷移してくれません。
urlに直接年月を入力すると一度で遷移できるので$_GET[]の方のプログラムの問題ではないかと思います。
おそらくですが、
1クリック目→submitでurlに送信
2クリック目→ページの更新時にurlが年月を受けとっているのでその年月のカレンダーに遷移
の流れになっているかと思います。
これを、1クリックで遷移までに持っていきたいんのですがformaction属性以外に$_POST[]で受けとったものをurlに送り、なおかつそのまま遷移できる属性はありますでしょうか。
または、他にやり方が考えられるでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/15 10:41 編集
2019/10/15 11:06