Не знаю с какой стороны подойти.
Нужно сделать select при выборе определенного значения чтобы появлялось текстовое поле
Например в select выбрано 2х местный номер соответственно показывается поле exposed filter для 2х местного номера.
Условия выбора построил, сделал на ajax, но как его привязать к определенному views и вывести в блоке не знаю?
Вот код:
<?php
// $Id$
function search_hotels_menu(){
$items = array();
// Generate a changing number of checkboxes.
$items['search-hotels'] = array(
'title' => 'Поиск гостиницы',
'page callback' => 'drupal_get_form',
'page arguments' => array('ajax_search_hotels'),
'access callback' => TRUE,
'weight' => 1,
);
return $items;
}
function
ajax_search_hotels($form, &$form_state) {
// Since the form builder is called after every AJAX request, we rebuild
// the form based on $form_state.
$num = !empty($form_state['values']['howmany_select']) ? $form_state['values']['howmany_select'] : 0;
$form['howmany_select'] = array(
'#title' => t('Выберите тип номера.'),
'#type' => 'select',
'#options' => array(0 => '-Выберите тип номера-', 1 => '2х местный номер', 2 => '3х местный номер', 3 => '4х местный номер', 4 => 'Полулюкс',5 => 'Люкс'),
'#default_value' => $num,
'#ajax' => array(
'callback' => 'ajax_example_autotextfields_callback',
'wrapper' => 'textfields',
//'method' defaults to replaceWith, but valid values also include
// append, prepend, before and after.
// 'method' => 'replaceWith',
// 'effect' defaults to none. Other valid values are 'fade' and 'slide'.
// See ajax_example_autotextfields for an example of 'fade'.
'effect' => 'fade',
// 'speed' defaults to 'slow'. You can also use 'fast'
// or a number of milliseconds for the animation to last.
// 'speed' => 'slow',
// Don't show any throbber...
'progress' => array('type' => 'node'),
),
);
$form['#method'] = 'get';
$form['textfields'] = array(
'#prefix' => '<div id="textfields">',
'#suffix' => '</div>',
'#type' => 'fieldset',
);
switch(
$num){
case 1:
$form['textfields']['field_2nomer_value'] = array(
'#type' => 'textfield',
'#title' => t('2х местный номер'),
'#size' => '25',
);
break;
case 2:
$form['textfields']['field_3nomer_value'] = array(
'#type' => 'textfield',
'#title' => t('3х местный номер'),
'#size' => '25',
);
break;
case 3:
$form['textfields']['field_4nomer_value'] = array(
'#type' => 'textfield',
'#title' => t('4х местный номер'),
'#size' => '25',
);
break;
case 4:
$form['textfields']['field_polylux_value'] = array(
'#type' => 'textfield',
'#title' => t('Полулюкс'),
'#size' => '25',
);
break;
case 5:
$form['textfields']['field_lux_value'] = array(
'#type' => 'textfield',
'#title' => t('Люкс'),
'#size' => '25',
);
break;
default:'';
}
$form['submit']['edit-submit-search'] = array(
'#type' => 'submit',
'#value' => t('Поиск'),
);
return $form;
}
function
ajax_search_hotels_callback($form, $form_state) {
return $form['checkboxes_fieldset'];
}
?>