
以下の日付プルダウンですが、
任意の日付が選択されたときに、
その値(日付)を他の変数に渡せるようにしたいです。
どのように他の変数に渡せば良いでしょうか?
<?
$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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プルダウンリンクを外部ファイ...
-
PHP プルダウンメニュー MYSQL
-
セレクトしたときに全て初期状...
-
コンボボックス(プルダウン)...
-
ドロップダウン、ラジオボタン...
-
奇数や偶数を調べる関数
-
選択されたプルダウンの値を変...
-
2つのプルダウンメニュから受け...
-
phpのプルダウンメニューで選ん...
-
<select>文、foreachと初期値設定
-
PHPとpostgreSQL プルダウンの作成
-
scanfでの読み込み文字数制限
-
フォームボタンを押すたびに数...
-
リンク先のフォームに自動的に...
-
フォーム送信後の更新ボタンで...
-
セッションを使わずに遷移先画...
-
同じページでフォームデータを...
-
htmlファイルからphpファイルへ...
-
ファイル名を変更してアップロ...
-
PHPの質問:フォームから受け取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セレクトしたときに全て初期状...
-
PHP で画面の一部だけを変えたい。
-
input type="hidden"で送る値を...
-
PHPにてselectboxの色によっ...
-
mysqlからのコンボボックスにつ...
-
「"」(ダブルクォーテーション)...
-
ウェブ上で選択した複数行の内...
-
PHP プルダウンメニュー MYSQL
-
【PHP&JavaScript】複数の別ウ...
-
HTML_QuickFormのチェックボッ...
-
複数のセレクトボックスを1つに...
-
CodeIgniter/set_value()
-
選択したタグ、入力した検索文...
-
データベースにある値でリスト...
-
プログラミング言語で、使える...
-
Smarty 配列のキーを変数で
-
コンボボックス(プルダウン)...
-
phpの質問です
-
わかりません・・・
-
MySQLのレコードを検索、...
おすすめ情報