2011-09-20 3 views
-1

Je dois filtrer le champ de territoire sur la valeur du champ de région im en utilisant la fonction ajax comme il est mentionné dans le code ci-dessous, mais cela ne fonctionne pas. AJAX CALL sur la fonction n'entrera pas dans la fonction 'territory_filter_callback' de toute façon sache où est l'erreur?ajax fonction dans drupal 6 ne fonctionne pas

  function form_search_menu() { 

      $items['form/search'] = array(
      'title' => t('Search'), 
      'page callback' => 'drupal_get_form', 
      'page arguments' => array('_search'), 
      'access callback' => TRUE, 
      'description' => t('search'), 
       ); 
      return $items; 
       } 

     function _search(&$form_state) { 
     drupal_add_js(drupal_get_path('module', 'form_search') .'/script.js'); 
      $form['description'] = array(
      '#type' => 'item', 
      '#title' => t('Search page'), 
       ); 



     //FILL THE LIST OF REGIONS 
     $conn = oci_connect('webuser', 'website', '172.16.1.1'); 

     //regions 
     $stid = oci_parse($conn, "SELECt code,descr1 FROM table1.region"); 
    oci_execute($stid); 
    $cidades = array();   while (($row = oci_fetch_array($stid, OCI_ASSOC))) { 
      $cidades[$row['CODE']]= $row['DESCR1']; 
           }  $cidades ['']='Select'; 

     //city 
     $stid1 = oci_parse($conn, "SELECT code,descr1 from table1.city ORDER BY  DESCR1"); oci_execute($stid1); $types = array();  while (($row = oci_fetch_array($stid1, OCI_ASSOC))) { 
      $types [$row['CODE']]= $row['DESCR1']; 
           }   $types['']='Select'; 
    //territory 
    $stid2 = oci_parse($conn, "SELECT code,descr1 FROM table1.territory");  oci_execute($stid2); 
    $territory = array(); 
     while (($row = oci_fetch_array($stid2, OCI_ASSOC))) { 
      $territory [$row['CODE']]= $row['DESCR1']; 
           } 
     $territory ['']='Select'; 


    oci_free_statement($stid); 
    oci_close($conn); 


$form['name'] = array(
    '#type' => 'fieldset', 
    //'#title' => t('Name'), 
    // Make the fieldset collapsible. 
    '#collapsible' => false, // Added 
    '#collapsed' => FALSE, // Added 
); 

    $form['name']['Region'] = array(
'#type' => 'select', 
'#title' => t('Region'), 
'#options' => $cidades, 
'#required' => FALSE, '#default_value' => isset($form_state['values']['name']['Region']) ? $form_state  ['values']['name']['Region'] : '', 
     '#ajax' => array(
      'event' => 'change', 
     'callback' => 'territory_filter_callback', 
      'wrapper' => 'dropdown_second_replace' 
    ), 
    // Added 
    ); 

$form['name']['Territory'] = array(
    '#type' => 'select', 
    '#title' => t('Territory'),  '#prefix' => '<div id="dropdown_second_replace">', '#suffix' => '</div>', 
    '#options' => $territory, 
    '#required' => FALSE, '#default_value' => isset($form_state['values']['name']['Territory']) ?    $form_state['values']['name']['Territory'] : '', 

     // Added ); 

    $form['name']['City'] = array(
    '#type' => 'select', 
     '#title' => t('City'), 
     '#options' => $types, 
    '#required' => FALSE, 
    // Added 
); 

$form['link'] = array(
'#type' => 'markup', 
'#value' => '<a href="#" onclick="navigate()" ><input type="button" value="Search"   style="background-color:#2A64A9;color:#FFFFFF;width:80px; height:25px;   border:1;CURSOR:POINTER;float:right;border-color:#FFFFFF;" ></a>', // 



    return $form; 
} 

    function territory_filter_callback(&$form,&$form_state) 
{ 
$territory_options=array(); 
    if(isset($form['name']['Region']['#default_value']['0']) 
{ $Region=$form['name']['Region']['#default_value']['0']; 
} 
else 
    {  $Region=0; 
    } 


    $territory_options=selected_territory($Region); 
    $form['name']['Region']['#ajax']= 
    array('event' => 'change', 
    'wrapper' => 'territory_wrapper', 
    'callback' => 'filter_territory_callback', 
    'method' =>replace, 
    ); 
    $form ['name']['territory']['prefix']='<div id="territory_wrapper">'; 
     $form ['name']['territory']['prefix']='</div>'; 
     $form ['territory']['#options']=$territory_options; 

    } 

    function filter_territory_callback($form,$form_state) 
{ 
    $Region=$form['name']['Region']['#value']; 
$form['name']['territory']['#options']=selected_territory($Region); 
return $form['territory']; 
    } 
+0

Je ne vois pas vraiment de point d'interrogation. Je serais heureux d'enlever mon downvote si vous réécrivez votre "question" et ajouter un peu plus de détails sur ce que vous avez fait et en particulier ne peut pas se mettre au travail. En outre, ce serait bien si vous pouviez formater votre code pour qu'il soit un peu plus facile à lire. Envisagez d'utiliser la même indentation dans votre code. – sbrattla

Répondre

0

6 prennent pas en charge drupal '#ajax' ... '# ajax' travaille avec 7 ... à l'aide de Drupal 6, vous pouvez drupal utiliser '#ahah'

http://drupal.org/node/331941

bonne chance