Drupal 7 - 为什么我的AJAX代码不起作用

时间:2013-11-14 23:44:38

标签: drupal-7 drupal-forms drupal-ajax

我知道有很多关于网站加载的教程(我在过去几个小时内已经阅读了大部分内容)但我仍然无法获得以下代码。谁能看到我做错了什么?

当我更改第一个中的值时,第二个选择框不会更新,而当我进行更改时,我没有在第一个选择框旁边看到蓝色旋转的ajax圆圈。

     $form['age_range'] = array(
      '#type'=>'select',
      '#title'=>'Age Range',
      '#options'=>$age_ranges,
      '#ajax'=>array(
          'event'=>'change',
          'callback'=>'childcare_observations_ajax_set_eyfs_category_list',
          'wrapper'=>'eyfs_category_wrapper',
          'method'=>'replace',
      )
    );

    $form['eyfs_category_wrapper'] = array('#prefix'=>'<div class="eyfs_category_wrapper">','#suffix'=>'</div>');

    $form['eyfs_category_wrapper']['eyfs_category'] = array(
      '#type'=>'select',
      '#title'=>'EYFS Category',
      '#options'=>array(1=>'one',2=>'Two'),
    );


    return $form;
}

function childcare_observations_ajax_set_eyfs_category_list($form,&$form_state){
    $eyfs_category_options = array();
    $eyfs_category_options[0] = "We just changed the list values";
    $eyfs_category_options[1] = "We also added a second option";
    $form['eyfs_category_wrapper']['eyfs_category'] = array(
        '#type'=>'select',
        '#title'=>'EYFS Category',
        '#options'=>$eyfs_category_options,
    );
    return $form['eyfs_category_wrapper'];
}

1 个答案:

答案 0 :(得分:0)

包装器应该是要替换的元素的 id 。你有 eyfs_category_wrapper

加上我不确定&#39; eyfs_category_wrapper&#39;是一个有效的元素,通常我使用字段集,或只是为我的目标字段添加前缀和后缀。