Как изменить флажки поля checkboxes в ajax?

Главные вкладки

Аватар пользователя PVasili PVasili 6 сентября 2020 в 16:10

Кому-нибудь удалось менять флажки checkboxes FormAPI через ajax?
Ниже пример.
При выборе $form['configs']['usrs'] должен выставиться соответствующий флажок в $form['configs']['replacing']['checkboxes'].
что #default_value что #value пусто — результат только при первом открытии формы Sad

<?php
function test_form($form, &$form_state) {
    
$usrs_array   = array('1' => '1''2' => '2''3' => '3''4' => '4');
    
$usrs_flag    = !empty($form_state['values']['usrs']) ? array(''.$form_state['values']['usrs']) : array('2');
    
$form['configs']['usrs'] = array(
      
'#title'   => 'Номер :',
      
'#type'    => 'select',
      
'#options' =>  $usrs_array,
      
'#default_value' => '2',
      
'#ajax'    => array(
        
'callback'   => 'ajax_callback',
        
'wrapper'    => 'replacing-div',
        
'method'     => 'replace',
        
'effect'     => 'fade',
        
'event'      => 'change',
      ),
    );
    
$form['configs']['replacing'] = array( 
      
'#prefix'  => '<div id="replacing-div">',
      
'#suffix'  => '</div>',
      
'#type'    => 'fieldset',
    );
    
$form['configs']['replacing']['checkboxes'] = array(
      
'#type'          => 'checkboxes',
      
'#options'       =>  array(
        
'1' => 'Тест 1',
        
'2' => 'Тест 2',
        
'3' => 'Тест 3',
        
'4' => 'Тест 4',
        
'5' => 'Тест 5',
      ),
      
'#default_value' => $usrs_flag,
//      '#value'         => $usrs_flag,
      
'#title'         => 'Права доступа. Выбрано ' current($usrs_flag),
    );
   return 
$form;
}

function 

ajax_callback($form, &$form_state) {
  return 
$form['configs']['replacing'];
}
?>