0

Drupal 7 でフォームを再構築しようとしています。「form_build_id」を知っています (例: form-_eNZLqaZWy7-6kYuGma5Cxg1Gru7Tmr9W2tsofSJxSg)。

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

コードがフォームを再構築することはありません。フォームを再構築するにはどうすればよいですか?

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

4

1 に答える 1

0
  1. print_rは、($ form_state ['always_process'])および($ form_state ['programmed'])の値に対して何を返しますか?

  2. $form_stateの再構築を停止する検証エラーが発生していないことを確認します。

  3. フォームの再構築を妨げているno_redirectの可能性もありますが、ここで何をしようとしているのかをもっと確認する必要があります。

于 2012-05-01T17:23:16.013 に答える