开发者

ajax function in drupal 6 not working

I need to filter the territory field upon the value of the region field im using ajax function like it's mentioned in the below code but it's not working. THE AJAX CALL on the fonction is not getting into the function 'territory_filter_callback' anyway would know where is the error?

            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'];
  }


drupal 6 not support '#ajax'...'#ajax' is working with drupal 7...in drupal 6 you can use '#ahah'

http://drupal.org/node/331941

good luck

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜