ahah probléma

quick képe

Csináltam egy formot ahah-val

function lista(&$form_state = NULL) {
  $lista_adat = array();
  $temp = explode("/", $_GET['q']);
  for($i = 2; $i < count($temp); $i++){
    $tmp = explode('+', $temp[$i]);
    $lista_adat[$tmp[0]] = $tmp[1];
  }
  if(user_access('access content')){
    $ret = drupal_get_form('hivasok_kivalasztasa');
  }
  return $ret;
}
 
function kivalasztas(&$form_state = NULL) {
 $form = array();
  $form['#attributes']['enctype'] = 'multipart/form-data';
  $form['adatok']  = array(
    '#type'        =>'fieldset',
  	'#title'       => 'Válassz intervallumot',
  	'#collapsible' => true,
  	'#collapsed'   => false,
  );
  $form['adatok']['ev'] = array(
    '#title'            => 'Év',
    '#type'             => 'select',
    '#options'          => $_SESSION['hivasok']['intezmenyek'],
    '#default_value'    => isset($lista_adat['ev']) ? $lista_adat['ev'] : 1,
    '#ahah'           => array(
      'path'          => 'lista/js1',
      'wrapper'       => 'edit-ho-wrapper',
      'progress'      => array(
        'type'        => 'none',
      ),
    ),
  );
  $form['adatok']['ho'] = array(
    '#title'            => 'Hónap',
    '#type'             => 'select',
    '#options'          => $_SESSION['hivasok']['dolgozok'],
    '#default_value'    => isset($lista_adat['ho']) ? $lista_adat['ho'] : 1, 
  );
  $form['adatok']['#redirect'] = FALSE;  
  $form['adatok']['submit'] = array(
    '#type'                 =>'submit',
    '#value'                => t('Lekérdez'),
  );
function kivalasztasa_validate($form, &$form_state){
 
}
function kivalasztasa_submit($form, &$form_state){
 
  $utvonal = '/ho+' . $form_state['values']['ho'];
  if($utvonal == ''){$utvonal = '/mind+';}
  drupal_goto('lista' . $utvonal);
}

az év listájának választása során szűri a hónap listát, majd kiválasztom a hónapot a leszűrt listából és rendre megjelenik a formon.
De mikor submit-tel elküldöm visszaáll a szűretlen állapotra a formon hónap lista.
function hivasok_lista_ho_js() {
  // Új elem felépítése.
  $new_element = array(
    'honap' => array(
      '#type' => 'select',
      '#title' => t('Hónap'),
    ),
  );
 
  if($_POST['ev']){
    $betoltott_honapok = array();
    $betoltott_honapok[1] = "Mind";
    $q = "SELECT DISTINCT {honap}.ho FROM {betoltve}";
    $q .= " LEFT JOIN {honap} ON {betoltve}.ho = {honap}.hid";
    if($_POST['ev'] > 1) {
      $q .= " WHERE {betoltve}.ev = '%s'";
    }
    $q .= " ORDER BY {honap}.hokod ASC";
    $res = db_query($q, $_SESSION['hivasok']['betoltott_evek'][$_POST['ev']]);
    while ($row = db_fetch_array($res)) {
      $betoltott_honapok[]= $row['ho'];
    }
    $_SESSION['hivasok']['betoltott_honapok'] = $betoltott_honapok;
    $new_element['honap']['#options'] = $_SESSION['hivasok']['betoltott_honapok'];
  }
  // Űrlap felépítése.
  $form_state = array('submitted' => FALSE);
  $form_build_id = $_POST['form_build_id'];
  // Az új elem írja felül a régit
  if (!$form = form_get_cache($form_build_id, $form_state)) {
    exit();
  }
  $form['adatok']['honap'] = $new_element;
  form_set_cache($form_build_id, $form, $form_state);
  $form += array(
    '#post' => $_POST,
    '#programmed' => FALSE,
  );
  // Űrlap újraépítése.
  $form = form_builder('hivasok_kivalasztasa', $form, $form_state);
  // Új űrlapelem kibontása.
  $new_form = $form['adatok']['honap'];
  unset($new_form['#prefix'], $new_form['#suffix']); // Dupla csomagolás megakadályozása.
  $new_form['#attributes']['class'] = empty($new_form[$delta]['#attributes']['class']) ?
    'ahah-new-content' :
    $new_form[$delta]['#attributes']['class'] .' ahah-new-content';
  // Az esetleges üzenetek kerüljenek az új elem fölé.
  $output = theme('status_messages') . drupal_render($new_form);
  drupal_json(array('status' => TRUE, 'data' => $output));
 
}
Drupal verzió: 
quick képe

Meg van a hiba ...

function hivasok_lista_ho_js() {
  // Új elem felépítése.
  $new_element = array(
    'honap' => array(   <=  nem honap hanem ho
...
$new_element['honap']['#options'] = $_SESSION['hivasok']['betoltott_honapok'];
itt is honap helyett ho

és a többi helyen is cseréltem és így már oké

0
0