Php Drupal7在表单提交后重定向到特定页面(选项卡)
提交表单后,我正在尝试重定向页面。表格在“公式制定者/补助金需求者/夹带者”页面,我想重定向到“公式制定者/补助金需求者/夹带者”我怎么做Php Drupal7在表单提交后重定向到特定页面(选项卡),php,drupal,drupal-7,drupal-modules,Php,Drupal,Drupal 7,Drupal Modules,提交表单后,我正在尝试重定向页面。表格在“公式制定者/补助金需求者/夹带者”页面,我想重定向到“公式制定者/补助金需求者/夹带者”我怎么做 function ulsform_form_alter(&$form, $form_state, $form_id) { if ($form_id == 'ulsform_demande_de_subvention_pour_les_entraineurs_form') { $form['#submit'][] = 'ulsform_de
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 */
}
它不起作用,当我尝试创建一个表单['#重定向']时,就像另一篇文章上的一个锯一样,它也不起作用。我能试试什么
谢谢你的帮助!我是drupal新手您忘记了通过引用传递
$form\u state
,因此您的更改只在form\u alter
函数中起作用
更改您的函数签名,如下所示。注和$form_state
:
function ulsform_form_alter(&$form, &$form_state, $form_id) {
$form_state['redirect']可以是数组或简单字符串。
若它是一个字符串,那个么用户将被重定向到那个里。
如果它是一个数组,它将根据工作方式工作
到node/123?foo=bar#baz
$form_state['redirect'] = 'node/123'
到
节点/123
我在自定义模块中有以下代码,编辑内容后,它总是重定向到/admin/content
function redirect_to_edit_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == "page_article_node_form") {
$form['#submit'][] = "_redirect_to_edit";
}
}
function _redirect_to_edit($form, &$form_state) {
$form_state['redirect'] = array(
'node/' . $form['nid']['#value'],
array(
'query' => array(
'destination' => 'node/' . $form['nid']['#value'],
)
)
);
dpm($form_state);
drupal_set_message("L'article a été mis à jour.", 'status');
}
我作为最后一次尝试添加的查询部分。
提交后,我可以阅读我的自定义消息,但我不能让用户停留在编辑页面
我跳过了什么
谢谢
编辑:
根据我在这个问题上的经验,有一些情况下重定向不起作用。对我来说,我已经实现了如下所示的预期重定向:
function redirect_to_edit_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == "page_article_node_form") {
//$form['actions']['submit']['#submit'][] = '_redirect_to_edit';
$form['#action'] = '?destination=node/' . $form['nid']['#value'] . '/edit';
}
}
下面的ans对你有用吗?当然有用,这就是为什么把它作为答案的原因
function redirect_to_edit_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == "page_article_node_form") {
//$form['actions']['submit']['#submit'][] = '_redirect_to_edit';
$form['#action'] = '?destination=node/' . $form['nid']['#value'] . '/edit';
}
}