php
  • forms
  • 2012-07-09 194 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

    相關問題