【问题标题】:Set default value extracted from mysql database for dropdown list php为下拉列表php设置从mysql数据库中提取的默认值
【发布时间】:2017-01-11 20:48:15
【问题描述】:

我有一个 php 页面,要求用户从 3 个下拉列表中输入他的出生日期(一个代表年,一个代表月,一个代表日),然后,我将这些值存储在 mysql 数据库中的一个日期变量中,如下所示:

  $date= $BirthYear.'-'.$BirthMonth.'-'.$BirthDay;

现在,我有另一个 php 表单,可以让用户编辑他的信息,但问题是:如何将编辑表单中三个下拉列表的默认值设置为存储的日期值? 我从数据库中获取日期值如下:

  $DOB_Y= $row['YEAR(BirthDate)'];
    $DOB_M= $row['MONTH(BirthDate)'];
    $DOB_D= $row['DAY(BirthDate)'];

我的生日下拉列表代码是:

 <select id="form_dob_day" name="dob_day"  class = "option" required >
    <?php 
    for($i=01; $i<=31; $i++)
    {
    echo "<option value=".$i.">".$i."</option>";
    }
    ?>
    </select>

MONTH 和 YEAR 也是如此。

我使用了这段代码,但它不起作用:

<select id="form_dob_day" name="dob_day"  class = "option" required >
    <?php 
for($i=01; $i<=31; $i++)
{


 echo "<option value=".$i. if ($DOB_D==$i) echo "selected" ">".$i."</option>";
}
?>
</select>

提前致谢,

【问题讨论】:

  • “它不起作用”总是是无用的事情,除非您要提供错误消息(如果有)或将所需的结果/输出与实际结果/输出。问题越好回答越好。

标签: php mysql date


【解决方案1】:

你的语法有错误,这应该更正它:

<select id="form_dob_day" name="dob_day"  class = "option" required >
<?php 
    for($i = 1; $i <= 31; $i++)
    {
        echo '<option value="' . $i . '" ' . (($DOB_D == $i) ? "selected"  : '') . '>' . $i . '</option>';
    }
?>
</select>

【讨论】:

  • 谢谢,我试过了,但没有选择值:(
  • 奇怪。您检查 $DOB_D 是否包含正确的值?
  • 我只是想建议一种替代语法:(['', 'selected'][$DOB_D == $i]) for (($DOB_D == $i) ? "selected" : '')
  • 这真的很棒@sensorario,简单而简短。谢谢你:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-10
  • 2013-10-23
  • 2013-10-30
  • 2021-12-18
  • 2012-09-13
  • 2016-11-16
  • 2020-07-06
相关资源
最近更新 更多