【问题标题】:How to rebuild a form in Drupal 7如何在 Drupal 7 中重建表单
【发布时间】:2012-04-30 15:45:42
【问题描述】:

我正在尝试在 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);

}

我想通过点击这样的 url 来重建一个表单 http://www.example.com/admin/structure/set_menu/rebuild/form-mQVd8FeimUAba8xuro38Q2_4phHZ6gupegEuY_ddKLs - 这个 url 没有显示错误,但它不会重建我的表单。

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

谢谢你,马丁。

【问题讨论】:

    标签: forms drupal rebuild


    【解决方案1】:
    1. print_r 为 ($form_state['always_process']) 和 ($form_state['programmed']) 的值返回什么?

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

    3. 也可能是 no_redirect 阻止了表单的重建,但我必须在这里看到更多你想要做的事情。

    【讨论】:

    • 1.已编程、process_input、重定向、提交、执行都设置为 false。始终根本没有设置过程。 2. 我没有收到验证错误。 3. no_redirect 设置为 1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多