你提交之後,可能是因爲,對於$ model_week無始值「星期二」] [「startam」],因此,沒有set_select具有第三參數組爲TRUE
檢查$ _ POST,如果設置,將值設置爲發佈值;
if($_POST){
$model_week['tuesday']['startam']=$_POST['week']['tuesday']['startam'];
}else{
$model_week['tuesday']['startam']=5;//or initial db value
}
<select name="week[tuesday][startam]" id="" class="small">
<?php for($i = 0; $i < 24; $i=$i + 0.25):?>
<option value="<?php echo $i; ?>"<?php echo set_select('week[tuesday][startam]', $i, "FALSE"); ?>><?php printf('%02d:%02d', floor($i), (($i-floor($i))*60)); ?></option>
<?php endfor; ?>
</select>
^看如果你能得到的代碼永遠比00:00
你不能等一個選擇的值。因爲如果沒有set_selected選項將第三個參數設置爲TRUE,您將永遠不會選擇一個選項,無論是在默認頁面加載還是在表單提交之後。
繼承人快速和骯髒的例子:
public function index(){
if($_POST){
$model_week['tuesday']['startam']=$_POST['week']['tuesday']['startam'];
}else{
$model_week['tuesday']['startam']=5;//would be the default value
}
?>
<form action="" method="POST" accept-charset="utf-8">
<select name="week[tuesday][startam]" id="" class="small">
<?php for($i = 0; $i < 24; $i=$i + 0.25):?>
<option value="<?php echo $i; ?>"
<?php echo set_select('week[tuesday][startam]', $i, ($i==(float)$model_week['tuesday']['startam'])); ?>>
<?php printf('%02d:%02d', floor($i), (($i-floor($i))*60)); ?>
</option>
<?php endfor; ?>
</select>
<input type="submit" name="some_name" value="rrrr" id="some_name">
</form>
<?php
}
你可以發佈你的控制器嗎?至少是表單驗證部分。 – applechief 2012-02-21 17:50:38
我認爲你正在做的事情:我不認爲我已經將它們添加到規則數組 - 將添加和重新測試。 – JasonC 2012-02-21 18:14:46
現在添加到驗證規則,它似乎工作正常。問題解決了。感謝您的建議,@chaft。 – JasonC 2012-02-21 18:32:55