0

私のドロップダウンメニューはクエリに関しては問題なく動作しますが、2 つの問題があります。

1-オプションを選択して送信ボタンを押すと、クエリは正常に返されますが、処理されたオプションを表示するドロップダウン メニューではなく、処理されたオプションに関係なく、実際には常に最初のオプションが表示されます。

2-ページに入ると、ドロップダウン メニューからオプションを選択して [送信] をクリックするまで、データが表示されません。初めて入力したときに、デフォルトで最初のオプションを処理するページが欲しいです。

<form action="http://localhost/xampp/mydomain.com/?page_id=2283" method='post'>
<select name="selected_date">
    <option value="2012-05-01">01.05.2012</option>
    <option value="2012-04-01">01.04.2012</option>
    <option value="2012-03-01">01.03.2012</option>
    </select>
    <input type="submit" VALUE="Go"/>
    </form>

$date=$_POST['selected_date'];

$query = " SELECT * from table1 WHERE
 `drop_date` > '$date' AND
 `drop_date` <= DATE_ADD('$date', INTERVAL 1 YEAR)"; 

どんな助けでも大歓迎です、ありがとう

4

2 に答える 2

2

あなたの質問から、訪問者が日付を選択した後に「Go」ボタンを押すと、同じページにリダイレクトされると思います。それらの選択をドロップダウンに表示するには、要素の前に最初に選択を読み取る必要があります。

    <select name="selected_date">
      <?php
        if (isset($_POST['selected_date'])){
          $selected_date = $_POST['selected_date'];
          echo "
            <option selected value=\"".$selected_date."\">".$selected_date."</option>
          "; 
        }
      ?>
      <option value="2012-05-01">01.05.2012</option>
      <option value="2012-04-01">01.04.2012</option>
      <option value="2012-03-01">01.03.2012</option>
    </select>

基本的に、フォームが投稿されたかどうかを確認し、選択した日付を取得し、その日付を値として選択要素にオプションを追加して、ページが読み込まれたときにドロップダウンで選択されるようにするだけです。

最初のページの読み込み時にページに選択が表示されないという問題に関しては、選択要素のオプションに「選択済み」属性がないことが問題であると思います。

これがあなたのお役に立てば幸いです...私たちに投稿してください!

ベルギーのエイリアン。

于 2012-05-11T00:11:54.513 に答える
0

わかりました、これで一生懸命戦いました。私は自分の質問に答えるつもりです:

<?php
$date=$_POST['selected_date']; //retrieves submitted option
?>

<form action="file.php" method='post'> As of :
<select name="selected_date">
<option value="2012-05-01" <?php if ( $date == '2012-05-01' ) {echo " selected";}?> >01.05.2012</option>
<option value="2012-04-01" <?php if ( $date == '2012-04-01' ) {echo " selected";}?> >01.04.2012</option>
<option value="2012-03-01" <?php if ( $date == '2012-03-01' ) {echo " selected";}?> >01.03.2012</option>
</select>
<input type="submit" VALUE="Get Data"/>
</form>

<?php
if($_POST['selected_date'])
$date=$_POST['selected_date'];
else
$date="2012-05-01"; // assigns a default option to be processed until user submits another one (to avoid empty feedback on 1st page load)
?> // 

BelgianAlien の回答を使用して、送信されたオプションを取得する最初のコードを追加して、次のオプションの IF ステートメントで認識できるようにしました

サーバーからの空のフィードバックを回避するために、最初のページの読み込み時にデフォルト オプションを処理できるようにする最後のコード行も追加しました。

于 2012-05-12T00:32:32.493 に答える