You are here

13Ajax表单的三个关键要点

admin 的头像
Submitted by admin on 星期四, 2015-06-18 09:40

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

    这里值得我们学习的地方有三点,一个是

$default_sheng = !empty($form_state['values']['sheng']) ? $form_state['values']['sheng'] : '';

$default_shi = !empty($form_state['values']['shi']) ? $form_state['values']['shi'] : '';

$default_xian = !empty($form_state['values']['xian']) ? $form_state['values']['xian'] : '';

 

还有一个是:

'#ajax' => array(      

'callback' => 'shengshixian_sheng_callback',      

'wrapper' => 'shi-wrapper-div',      

'method' => 'replace',      

'effect' => 'fade',    

), 

 

'#ajax' => array(      

'callback' => 'shengshixian_shi_callback',      

'wrapper' => 'xian-wrapper-div',      

'method' => 'replace',      

'effect' => 'fade',    

),

最后便是Ajax的回调函数:

 

function shengshixian_sheng_callback($form,&$form_state){

  //根据当前省份,重新确定市的可选项。返回重新构建的表单元素shi

return $form['shi'];

}

 

function shengshixian_shi_callback($form,&$form_state){

  //根据当前所选的市,重新确定县的可选项。返回重新构建的表单元素xian

return $form['xian'];

}

 

    这三处,是Ajax表单的关键所在。对于第一处,获取默认的表单元素的值,看似非常普通,但确实是一个关键的地方。我们先来描述一下大致的执行流程。当我们访问页面ssx时,我们看到了一个普通的表单。如图所示:


Drupal版本: