以下の日付プルダウンですが、
任意の日付が選択されたときに、
その値(日付)を他の変数に渡せるようにしたいです。
どのように他の変数に渡せば良いでしょうか?
<?
$today=time();
$limit=30;
echo "<select name=puldown>";
$menu=$today;
for($i=0; $i<$limit; $i++){
$menu=date("Y/m/d",$today-86400 * $i);
echo "<option value=$menu>$menu</option> \n";
}
echo "</select>";
?>
No.5ベストアンサー
- 回答日時:
同じページへ渡すのであればPOSTよりGETのが書きやすいかもしれないです。
main.phpの先頭でプルダウンが変更された時とそうでないときの判定が必要になります。----- ページの先頭 -----
<?php
if(isset($_GET['sendday']))
{
//日付を受け取る
$sendday = $_GET['sendday'];
//SQL用に日付を加工
$sqlday = addslashes(date('Y/m/d',$sendday));
//DB接続・選択処理
//SQL作成
//SQL実行
}
//自身のスクリプト名
$self = $_SERVER['SCRIPT_NAME'];
?>
html記述開始
<!DOCTYPE ~
で、javascript記述ですがプルダウンのoptionのvalueにジャンプしたいURLとそのURLに渡したい値をパラメータでつけてやって飛ばすようにします。
<SCRIPT LANGUAGE="JavaScript">
<!--
function Jump()
{
//valueを取得する
url = f.elements['pulldown'].options[f.elements['pulldown'].selectedIndex].value
if(url != "-")
{
//指定ページへジャンプ
location.href = url;
}
}
// -->
</SCRIPT>
html記述
<body>
~~~
ジャンプ後プルダウン部分は表示しないのであれば
<?php
//ジャンプする前
if(!isset($_GET['sendday']))
{
?>
<form name="f">
<select name="pulldown" onChange="Jump();">
<option value="-" >日付を選択</option>
<?php
$limit=30;
for($i=0;$i<$limit;$i++)
{
//今日から30日間
$day = mktime (0, 0, 0, date("m"), date("d")+$i, date("y"));
$strday = date('Y/m/d', $day);
?>
<option value="<?php echo $self ?>?sendday=<?php echo $day ?>"><?php echo $strday ?></option>
<?php
}
?>
</select>
</form>
<?php
}
//ジャンプした後
else
{
?>
SQLを<?php echo $sqlday ?>で抽出した結果をここに記述
<?php
}
?>
</body>
こんな感じではないでしょうか。
何度もありがとうございます!
今回は、簡単なコード修正で済むのでANo.4さんのやり方で行くことにしましたが、貴重な手法をお教えいただき、大変感謝しています。
ぜひ、今後に役立たせていただきたいと思います。
何かありましたら、またよろしくご教授くださいませ。
No.3
- 回答日時:
この回答への補足
ありがとうございます。
ただ、別ページに飛ばしたいわけではなく、同ページに更新をかけるような感じになるので、以下のようにやってみました。
が、PHPが処理される前に、同ページ(main.php)に飛ぶだけ(ただ更新されるだけ)で、ブラウザには何も反映されないようです。
<SCRIPT LANGUAGE="JavaScript">
<!--
function Jump() {
location.href = 'main.php';
}
// -->
</SCRIPT>
<select name="pulldown" onChange='Jump();'>
No.2
- 回答日時:
やりたいことがイマイチよく判らないのですが・・・。
新しい変数に渡したいだけなら
<?
$today=time();
$limit=30;
//データをPOSTで受取新しい変数へ
$new_hensu = $_POST["puldown"];
echo "<FORM METHOD='POST' ACTION='$SERVER[PHP_SELF]'>";
echo "<select name=puldown>";
$menu=$today;
for($i=0; $i<=$limit; $i++){
$menu = date("Y-m-d", $today - 86400 * $i);
echo "<option value=$menu>$menu</option> \n";
}
echo "</select>";
echo "<input type='submit' value='Go!'>";
echo "<form>";
echo "<br>";
echo "$new_hensu";
?>
こんな感じ?
この回答への補足
ご回答ありがとうございます。
やりたいことは、単に選択された日付で、テーブルのデータを抽出してブラウザに返したいだけです。
SQL以降はできているので、あとは日付選択で日付を変数に渡すところだけなのです。
日付を選択したと同時にサブミットさせたいのですが、何か良い方法はありますでしょうか?
javascriptとか使わないと、PHPだけだと無理でしょうかね?
No.1
- 回答日時:
書かれたソースを実行するとエラーがでるのですが・・・。
----- 日付選択側php -----
<body>
<form name="form1" method="post" action="getdate.php" target="_blank">
<select name="pulldown">
<?php
$limit=30;
for($i=0;$i<$limit;$i++)
{
//今日から30日分
$day = mktime (0, 0, 0, date("m"), date("d")+$i, date("y"));
$strday = date('Y/m/d', $day);
?>
<option value="<?php echo $day ?>"><?php echo $strday ?></option>
<?php
}
?>
</select>
<br>
<br>
<input type="submit" name="Submit" value="送信">
</form>
</body>
----- 受け取り側php -----
<?php
$getdate = $_POST['pulldown'];
$viewdate = date('Y/m/d', $getdate);
echo $viewdate;
?>
上記のような感じでできるかと思います。
渡す時は整形する前の形で渡して受け取った側で整形してやるのが簡単で良いかと思います。
この回答への補足
書いたソースを実行するとエラーがでるのは、見やすさを優先して全角スペースを入れて投稿してしまったためだと思います。
すいません。。
ご回答ありがとうございました!
ただ、日付を選択したと同時にサブミットさせたいのですが、何か良い方法はありますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のセレクトボックスを1つに...
-
プログラミング言語で、使える...
-
チェックボックスで渡ってきた...
-
<select>文、foreachと初期値設定
-
頭文字→大学→学部を選択する入...
-
複数 selectフォームから今回on...
-
phpでカレンダー作成
-
プルダウンとCSVの連動
-
複数のセレクトボックスで
-
phpでのセレクトボックスの値を...
-
プルダウンリスト(コンボボッ...
-
value値にあてはまるフィールド...
-
「"」(ダブルクォーテーション)...
-
PHPで診断しておすすめの本を紹...
-
PHP ボタンが押されたら処理を...
-
PHPでフォームから任意の画像削...
-
HTMLで前の画面に戻る時、入力...
-
PHPで画像の渡しが上手く行きま...
-
フォームへの前回入力値をクリ...
-
フォームボタンを押すたびに数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンとCSVの連動
-
「"」(ダブルクォーテーション)...
-
ラジオボタンの値を受け取ってP...
-
<select>文、foreachと初期値設定
-
phpでのセレクトボックスの値を...
-
複数 selectフォームから今回on...
-
php セレクトボックス 値取得
-
複数のセレクトボックスを1つに...
-
2つのプルダウンメニュから受け...
-
phpでのselect値の取得・表記に...
-
foreachで次の行の値を取得して...
-
ウェブ上で選択した複数行の内...
-
CodeIgniter/set_value()
-
ループ処理
-
連動させたいセレクトボックス...
-
PHP で画面の一部だけを変えたい。
-
phpでカレンダー作成
-
現在時刻を反映させた時刻のプ...
-
プルダウンで選択された値を保持
-
プルダウンリスト(コンボボッ...
おすすめ情報