Здравствуйте! Помогите разобраться плз. Вопрос по формам.
Есть чекбоксес, обрабатывается через аякс. когда мы ставим галочки по пунктам, в другом таком же чекбоксес должны отмечаться те-же пункты.
Уже как только не делал. #default_value новые переменные принимает, но checkboxes по сути построен из нескольких checkbox и атрибуты этих дочерних пунктов, а именно ['#attributes']['checked'] через аякс не меняются. Variable_set, variable_get показали, что в принципе все работает, но только при перезагрузке страницы.
<?phpfunction filterkvartira_form($form, &$form_state) {
$form['kolvokom'] = array(
'#title' => '<h1>количество комнат</h1>',
'#type' => 'checkboxes',
'#options' => array(
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => 5,
6 => 6,
7 => 7,
),
'#prefix' => '<div id = "form-kolvokom">',
'#suffix' => '</div>',
'#ajax' => array(
'callback' => 'form_kolvokom',
'wrapper' => 'form-kolvokomback',
'method' => 'replace',
'effect' => 'fade',
),
);
unset($form['kolvokomback']);
if (isset($form_state['values']['kolvokom'])) {
foreach ($form_state['values']['kolvokom'] as $key=>$value) {
if ($value != 0) {$arguments[] = $key; variable_set('kkomb', $arguments);}
}
}
$form['kolvokomback'] = array(
'#title' => 'asd',
'#type' => 'checkboxes',
'#options' => array(
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => 5,
6 => 6,
7 => 7,
),
'#prefix' => '<div id = "form-kolvokomback">',
'#suffix' => '</div>',
);
$form['kolvokomback']['#default_value'] = $arguments;
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('сбросить'),
);
return $form;
}
function form_kolvokom($form, $form_state) {
return $form['kolvokomback'];
}
function myfilters_form_alter(&$form, &$form_state) {
dpm($form);
$form['kolvokomback']['#default_value'] = variable_get('kkomb', array());
$tit=variable_get('kkomb', array());
$form['kolvokomback']['#title'] = $tit[0];
}?>
Комментарии
вы показали рабочий код с перезагрузкой страницы, вам то нужно чтобы помогли понять почему не работает в колбеке - тот код и покажите
и лучше минимальный без вставок лишних, сложно разобрать
этот код не перезагружает страницу целиком, лишь область второго чекбоксес. в любом случае проблема решена. До дочерних объектов все-таки можно добраться