2012-04-30 13 views
0

私が知っているのDrupal 7でフォームを再構築しようとしていますその「form_build_id」(例えばフォーム_eNZLqaZWy7-6kYuGma5Cxg1Gru7Tmr9W2tsofSJxSg)私はこのhook_menuとメニューのコールバック関数を定義しのDrupalでフォームを再構築する方法7

/** 
* 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を押すことで、フォームを再構築したい - このURLはエラーを表示しませんが、それは私のフォームを再構築しません。

コードは決してフォームを再構築しません。フォームを再構築するにはどうすればよいですか?

ありがとう、マーティン。

答えて

0
  1. 何を($ form_state [ 'always_process'])の値とのためのリターンしますprint_r($ form_state [ 'プログラム'])?

  2. $ form_stateの再構築を停止する検証エラーが表示されないことを確認してください。

  3. フォームが再構築されないようにするためのno_redirectでもかまいませんが、ここで何をしようとしているのかさらに確認する必要があります。

+0

1.プログラムされたprocess_input、redirect、submittedd、executedは、falseに設定されています。常にプロセスが設定されていません。 2.検証エラーは表示されません。 3. no_redirectが1に設定されます。 – MPeli

関連する問題