1

我有一张日期表:

id,日期字段,日字段,月年字段

1,2012-05-01,2012年5月,星期二

2,2012-05-02,2012年5月,星期三

我正在使用一个下拉框,我在其中选择 DISTINCT 月年字段。如果月份是例如 2012 年 6 月,我希望下拉框默认为页面打开时的那个。我不知道该怎么做。如果我使用 WHERE 子句,它仅显示例如 Jun-2012。目前它默认为第一行,即 May-2012。我尝试了 ORDER BY 变量 ($date_start1) 但这不起作用。

<?php
$date_start1 = "Jun-2012"; //just for testing purposes, will change later so that it gets the current Month.
echo $date_start1;
$sql2 = "SELECT DISTINCT monthyearfield FROM trn_cal";
$res2 = mysql_query($sql2);
echo "<form method='post'>";
$dropdown = "<select name='myvalue'>";
while ($row2 = mysql_fetch_assoc($res2)) {
    $my = $row2['monthyearfield'];
    $dropdown .= "\r\n<option value='{$row2['id']}'>{$row2['monthyearfield']}</option>";
}
$dropdown .= "\r\n</select>";
echo $dropdown;
echo "<input type=submit name=Submit value='Go'>";
$data1 = mysql_real_escape_string($_POST["myvalue"]);
echo "</form>";
?>
4

4 回答 4

1

您可以使用 php date[docs]函数并添加一个 if 来检查它。像:

$cur_date = date('M-Y');
while ($row2 = mysql_fetch_assoc($res2)) {       
    $selected = "";
    if ($row2['monthyearfield'] == $cur_date) {
       $selected = "selected='selected'";
    }
    $dropdown .= "\r\n<option value='{$row2['id']}' {$selected}>{$row2['monthyearfield']}</option>";
}
于 2012-05-08T08:15:47.823 回答
0

只需编辑这一行:

$dropdown .= "\r\n<option value='{$row2['id']}'>{$row2['monthyearfield']}";

if ($row2['monthyearfield']== 'Jun-2012') $dropdown .="selected=selected";

$dropdown .=' /option> ';

于 2012-05-08T08:11:08.090 回答
0
while ($row2 = mysql_fetch_assoc($res2)) {
    $my = $row2['monthyearfield'];
    $selected = "";
    if ( $my == $date_start1 ) {
      $selected = " selected='selected'";
    }
    $dropdown .= "\r\n<option value='{$row2['id']}'{$selected}>{$row2['monthyearfield']}</option>";
}
于 2012-05-08T08:13:06.027 回答
0

你想订购你的结果,还是你想在你的选项列表中自动选择一个特定的项目?我建议这是最后一个,不是吗?

所以,给“”标签,它包含应该自动选择的值,“selected='selected'属性/值。

费:

<select>
    <option>Bar</option>
    <option selected="selected">Foo</option>
    <option>FooBar</option>
</select>

所以标题为“Foo”的项目将被自动选中。

于 2012-05-08T08:16:40.950 回答