drupal7 创建form表单 并重定向提交路径同时使用get方式传递(drupal 简洁url)传参实例演示

1、 指定创建form的函数,并传递参数

$formhtml = drupal_render(drupal_get_form('create_form', 'get_name',a,b,c));
  //介绍一下drupal_get_form($fucname,$vars)   param1 调用创建form的函数名     param2 传递过去的参数,每个参数使用,分割  


2、创建create_form函数
 function create_form($form_state, $args) {
  //这里的$args 就是你传递过来的参数,
  $callback_url = $args['build_info']['args'][0];     //get_name
  $default_value = $args['build_info']['args'][1];    //a         $args['build_info']['args'][2]    //b   以此类推
  $form['callback_url'] = array(     //创建一个隐藏域来保存form提交的路径
    '#type' => 'hidden',
    '#value' => $callback_url,
  );
  $form['username'] = array(         //创建一个异步查询
    '#title' =>name,
    '#type' => 'textfield',                        //字段类型
    '#default_value' => $default_value,            //设置默认值
    '#autocomplete_path' => 'ajax/'.arg(2),        //指定查询路径
    '#size' => 22,                                
  );
  $form['submit'] = array(                      //创建form提交按钮
    '#type' => 'submit',
    '#value' => ucfirst('search'),
    '#submit' => array('form_submit'),         //指定form提交函数
  );
  return $form;
}


3、 创建form提交函数

 function form_submit($form, &$form_state) {  
  //1、drupal的简洁url传参  

  //拼接form提交路径  用隐藏域和username的值来拼接  

  $callback_url = $form_state['values']['callback_url'] . '/' . $form_state['values']['username'];
 

  //重定向form路径  

  $form_state['redirect'] = array($callback_url);


//2、get方式传参

  $callback_url = $form_state['values']['callback_url'];

  $args = array('query' => array('c'=>$form_state['values']['username']));

  //重定向form路径  

  $form_state['redirect'] = array($callback_url,$args);
}


你可能感兴趣的:(drupal7 创建form表单 并重定向提交路径同时使用get方式传递(drupal 简洁url)传参实例演示)