Drupal 7 开发内部培训资料, 分头诗人

Views的exposed filter form不能用Ajax

赞成!
0
否决!

我有一个Views的页面,通过exposed filter来筛选。有几个筛选器,我想做成联动的,选择省份后加载城市,选择城市后再加县区。

默认的筛选器是textfield,我通过hook修改成了select. 主要代码如下:

 

function teamfilter_form_views_exposed_form_alter(&$form, &$form_state, $form_id){
    if($form["#id"] == "views-exposed-form-team-page"){
        $form['ajaxtest'] = array(
            '#type' => 'select',
            '#options' => array(
                '' => 'xx',
                '1' => 'oo',
            ),
            '#ajax' => array(
                'callback' => 'teamfilter_test_callback',
                'wrapper' => 'edit-field-address-city-wrapper',
            ),
        );
    }
}

function teamfilter_test_callback($form, $form_state){
    dpm($form_state);
    die("no");
}

 

有Ajax请求,但是没有任何返回,回调函数没有执行。

2 个回答

赞成!
0
否决!

试一下模块Simple hierarchical select,他能对views expose有效,

或者是模块Hierarchical Select,在filter中增加Taxonomy: Term,然后选择Hierarchical Select。

赞成!
0
否决!

谢谢,之前试过这两个,不能满足需求(或者没有找到好方法),所以决定自己写个模块实现。

找到原因了,是Views对Form的改动,使得Ajax不能完成。

 

https://drupal.org/node/1183418