0

我的下拉菜单在查询方面工作得很好,但有两个问题:

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

我从您的问题中假设访问者在选择日期后点击“开始”按钮时被重定向回同一页面。要让他们的选择显示在下拉列表中,您必须在元素之前先阅读他们的选择。

    <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 回答