Возможно, потому что после отправки нет начального значения для $ model_week ['tuesday'] ['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
Вы не можете.Потому что у вас никогда не будет выбран параметр без 1 set_selected с третьим параметром в качестве ИСТИНЫ, будь то при загрузке страницы по умолчанию или после отправки формы.
Вот быстрый и грязный пример:
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
}