Mik*_*tin 4 php drupal drupal-7 drupal-modules
在我提交表单后,我正在尝试重定向页面.表格在页面'formulaires/demande-de-subvention-pour-les-entraineurs',我想重定向'公式/ demande-de-subvention-pour-les-entraineurs/entraineurs'我怎么能这样做?
function ulsform_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'ulsform_demande_de_subvention_pour_les_entraineurs_form') {
$form['#submit'][] = 'ulsform_demande_submited_form';
}else if($form_id == 'ulsform_demande_de_subvention_pour_les_entraineurs_02_form'){
$form['#submit'][] = 'ulsform_entraineur_submited_form';
}
}
function ulsform_demande_submited_form(&$form, $form_state){
global $user;
$v = $form_state['values'];
$form_state['redirect'] = 'formulaires/demande-de-subvention-pour-les-entraineurs/entraineurs';
/* My code to insert into the db */
}
Run Code Online (Sandbox Code Playgroud)
它不起作用,当我尝试在另一个帖子上创建一个类似锯子的表单['#redirect']时,它也不起作用.我该怎么办?
谢谢您的帮助!我是drupal的新手
Aye*_*h K 16
您忘记$form_state
通过引用传递,因此您的更改仅在form_alter
函数中起作用.
更改您的功能签名如下.注意&$form_state
:
function ulsform_form_alter(&$form, &$form_state, $form_id) {
Run Code Online (Sandbox Code Playgroud)
$ form_state ['redirect']可以是数组或简单字符串.如果它是一个字符串,用户将被重定向到那里.如果它是一个数组,它将根据drupal_goto的工作方式工作.
$form_state['redirect'] = array(
'node/123',
array(
'query' => array(
'foo' => 'bar',
),'fragment' => 'baz');
Run Code Online (Sandbox Code Playgroud)
至 node/123?foo=bar#baz
$form_state['redirect'] = 'node/123'
Run Code Online (Sandbox Code Playgroud)
至 node/123