Ajax SelectedDepends Control

Материал из AOW

Перейти к: навигация, поиск

от 15 декабря 2010

Ajax SelectedDepends Control

Пример использования

 'birthday' => array(
   // тип нового контрола
   'type' => 'ajax_select', 
   // идентификатор блока, обрамляющего контрол
   'name' => 'birthday',
   // функция обратного вызова, обрабатывающая выбор в селектах кроме последнего
   'callback' => array(
     'module' => 'db_pg_users',
     'func' => 'birthday',
   ),
   // варианты выбора для первого селекта
   'options' => array_combine(range(1960, 2010), range(1960, 2010)),
   // имена и подписи к списку селектов
     'items' => array(
       array('title' => 'Год', 'name' => 'year'),
       array('title' => 'Месяц', 'name' => 'month'),
       array('title' => 'День', 'name' => 'day'),
   ),
   // обработчик вешается только на последний селект
   'onchange' => 'alert(this.value);'
 ),

Пример обработчика

 public static function birthday() {
   // в обработчик гетом передается имя сработавшего селекта
   if (c_url::gets('name') == 'month') {
     // постом передается вся форма
     $count = date("t", mktime(0, 0, 0, $_POST['month'], 1, $_POST['year']));
     $range = range(1, $count);
   } else {
     $range = range(1, 12);
   }
   return array(
     // необходимо вернуть имя селекта, для которого передаются значения
     'name' => count($range) > 12 ? 'day' : 'month',
     // и передать сами значения
     'options' => array_combine($range, $range),
   );
 }
Личные инструменты

Разработка веб-сайтов, автоматизация.
По всем вопросам обращайтесь по телефонам:

+7 495 640 29 90
http://artofweb.ru