2012-04-30 38 views
0

我试图重建在Drupal 7.一种形式,我知道它的“form_build_id”(例如表单_eNZLqaZWy7-6kYuGma5Cxg1Gru7Tmr9W2tsofSJxSg)如何重建形式在Drupal 7

我定义这个hook_menu和菜单回调函数:

/** 
* Implements hook_menu(). 
*/ 
function set_menu_menu() { 
    $items['admin/structure/set_menu/rebuild/%'] = array(
    'title' => 'Rebuilt', 
    'page callback' => 'set_menu_ajax_rebuild', 
    'page arguments' => array(4), 
    'access callback' => TRUE, 
); 
    return $items; 
} 

function set_menu_ajax_rebuild($form_build_id) { 
$form_state = form_state_defaults(); 
$form = form_get_cache($form_build_id, $form_state); 

$form_state['no_redirect'] = TRUE; 

// @see drupal_rebuild_form() 

$form_state['set_menu']['count']++; 
$form_state['rebuild'] = TRUE; 

drupal_process_form($form['#form_id'], $form, $form_state); 

} 

我想通过点击网址这样 http://www.example.com/admin/structure/set_menu/rebuild/form-mQVd8FeimUAba8xuro38Q2_4phHZ6gupegEuY_ddKLs重建形式 - 这个URL显示没有错误,但它不重建我的形式。

代码从不重建任何形式。我如何重建表单?

谢谢你,马丁。

回答

0
  1. 什么是对的($ form_state [ 'always_process'])的价值和回报的print_r($ form_state [ '程序'])?

  2. 确认你没有收到任何验证错误,它将停止$ form_state重建。

  3. 它也可能是no_redirect保持窗体不被重建,但是我不得不在这里看到更多的东西。

+0

1.已编程,process_input,redirect,submittedd,已执行设置为false。始终没有设置进程。 2.我没有验证错误。 3. no_redirect设置为1。 – MPeli