dtihe8614 2016-01-13 16:24
浏览 51
已采纳

在表单提交后将值保留在下拉列表中

I am trying to retain the value which is selected in my drop down list, I am currently using:

<?php if ($_POST['day']==1) {echo "selected='selected'"; } ?>

to achieve this, I am just wondering if there is a more effective way of doing this because in my day drop down list I have 32 values including default, month 13 including default and year 51 including default. any suggestions would be appreciated.

  • 写回答

1条回答 默认 最新

  • douyi1855 2016-01-13 16:28
    关注

    Use a for loop.

    For example, using a month with 31 days:

    for($i=1; $i<32; $i++){
        echo "<option value='$i'".($i==$_POST["day"] ? " selected" : null).">$i</option>";
    }
    

    If $_POST["day"]==1, this will output:

    <option value='1' selected>1</option>
    <option value='2'>2</option>
    <option value='3'>3</option>
    <option value='4'>4</option>
    <option value='5'>5</option>
    <option value='6'>6</option>
    <option value='7'>7</option>
    <option value='8'>8</option>
    <option value='9'>9</option>
    <option value='10'>10</option>
    <option value='11'>11</option>
    <option value='12'>12</option>
    <option value='13'>13</option>
    <option value='14'>14</option>
    <option value='15'>15</option>
    <option value='16'>16</option>
    <option value='17'>17</option>
    <option value='18'>18</option>
    <option value='19'>19</option>
    <option value='20'>20</option>
    <option value='21'>21</option>
    <option value='22'>22</option>
    <option value='23'>23</option>
    <option value='24'>24</option>
    <option value='25'>25</option>
    <option value='26'>26</option>
    <option value='27'>27</option>
    <option value='28'>28</option>
    <option value='29'>29</option>
    <option value='30'>30</option>
    <option value='31'>31</option>
    

    Completed:

    //Days
    echo "<select name='day'><option value='default' disabled>Select a day</option>";
    for($i=1; $i<32; $i++){
        echo "<option value='$i'".($i==$_POST["day"] ? " selected" : null).">$i</option>";
    }
    echo "</select>";
    
    //Months
    echo "<select name='month'><option value='default' disabled>Select a month</option>";
    for($i=0; $i<30; $i++){
        echo "<option value='$i'".($i==$_POST["month"] ? " selected" : null).">$i</option>";
    }
    echo "</select>";
    
    //Years
    echo "<select name='year'><option value='default' disabled>Select a year</option>";
    for($i=2016; $i<2056; $i++){
        echo "<option value='$i'".($i==$_POST["year"] ? " selected" : null).">$i</option>";
    }
    echo "</select>";
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元