php
  • forms
  • 2012-07-09 208 views 0 likes 
    0

    我有一个表单提交2个值到我的数据库,当表单加载时我检查数据库中是否已经存在值,我一直在尝试使用这些值并将它们设置为我的默认值下拉框。任何帮助,将不胜感激。感谢设置默认下拉值

    <form method="post" action="add_res.php?id=<? echo $id;?>"> 
        <fieldset> 
        <label>From</label> 
        <select name='one' id='one'> 
        <? 
         for($hours=0; $hours<24; $hours++) // the interval for hours is '1' 
          for($mins=0; $mins<60; $mins+=30) // the interval for mins is '30' 
           echo '<option>'.str_pad($hours,2,'0',STR_PAD_LEFT).':'.str_pad($mins,2,'0',STR_PAD_LEFT).'</option>'; 
        ?> 
        </select><br><br> 
        <select name='two' id='two'> 
        <? 
         for($hours=0; $hours<24; $hours++) 
          for($mins=0; $mins<60; $mins+=30) 
           echo '<option>'.str_pad($hours,2,'0',STR_PAD_LEFT).':'.str_pad($mins,2,'0',STR_PAD_LEFT).'</option>'; 
        ?> 
        </select> 
        </fieldset> 
        <input type="submit" value="Restrict" class="btn_searchp"></a> 
    </form> 
    
    +0

    请告诉我们更多的信息'$小时'和'$分钟'。为什么连续有2个'for'?你想做什么? – diEcho 2012-07-09 04:09:35

    +2

    我是唯一一个讨厌缩进的人吗? – C0deH4cker 2012-07-09 04:17:19

    回答

    0

    你的价值结合起来,然后与数据库中的值进行比较

    <select name="one" id="one"> 
    <?php for loop 
    $timeToDisplay = sprintf('%s:%s',str_pad($hours,2,'0',STR_PAD_LEFT), 
               str_pad($mins,2,'0',STR_PAD_LEFT)); 
    $selected = if($row['timeRow'] == $timeToDisplay) ? 'selected="selected"' : ''; 
    // let $row['timeRow'] is the value retrieve from database 
    ?> 
        <option value="<?=php echo $timeToDisplay;?>" <?php echo $selected;?> > 
        <?php echo $timeToDisplay?> 
        </option> 
    </select> 
    

    参考文献:

    sprintf

    ternary operator

    +0

    HTML属性使用双引号,而不是单个wuotes。单引号可以在某些浏览器中使用,但是使用双引号是合适的。 – C0deH4cker 2012-07-09 04:19:07

    +1

    @ C0deH4cker单引号一直适用于HTML中的属性,并且总是会用到。 ,只接受双引号 – 2012-07-09 04:21:23

    +0

    我纠正了,只是搜索了一下,确认并确认单引号在HTML,XHTML甚至XML中都是合法的,很好知道,抱歉误导。 – C0deH4cker 2012-07-09 04:27:12

    相关问题