Вах, устал искать причину. Все перепробовал. Выдает вот такую ошибку и не могу ничего сделать.
Пишу свой модуль, в нем:
$form['booking']['ot']=array(
'#type' => 'select',
'#title' => 'Check - in',
'#prefix' => '<div class="inc">',
'#suffix' => '</div>',
'#options' => $options,
);
'#type' => 'select',
'#title' => 'Check - in',
'#prefix' => '<div class="inc">',
'#suffix' => '</div>',
'#options' => $options,
);
<?php $t_date=date('w');
if($t_date!=1){
if($t_date===0){$t_date=7;}
$start_time=time()+((8-$t_date)*86400);
}else {
$start_time=time()+(7*86400);
}
$full_list=array();
for($i=$start_time;$i<($start_time+31556926);$i+=604800){
$full_list[]=(date('j m Y',$i));
}
$options=$full_list;?>
Т.е. на выходе селект
Не могу понять в чем дело...
Комментарии
Такая ошибка происходит когда при постинге на сервере с формы приходит значение, которое не отдавалось клиенту в options.
Нет ли случайно рядом каких-нить аяксовых элементов, которые могли бы перетирать на сервере options в кеше формы, а клиентские данные не обновлялись?
Забыл написать как решил. Проблема была именно в value, которое содержало time(). Чет друпал такие цифры отказывался принимать. Изменил значение на 22-03-2012 и при приемке значений - explode() - mktime().
Решение:
$form['booking']['#tree'] = TRUE;
http://drupal.org/node/48643