首页 > 解决方案 > Drupal 如何在没有 hook_form_alter 的情况下重建 à 表单

问题描述

我需要在另一个表单提交后重建一个表单(这个表单给了我第二个表单需要的值),这两个表单在同一个页面中,所以 hook_form_alter 只能在页面构建时调用。

我尝试在我的第二个表单上添加一个 Ajax 回调来重建它但不起作用,我也尝试了一个 ajax_command_replace 但也不起作用。

我现在真的不知道该怎么办,你有什么想法吗?

标签: ajaxformsdrupaldrupal-7

解决方案


两种选择:

1:Form1 提交 -> 重定向到同一页面 -> PHP 获取表单值 -> 将值放入 form2 使用 form_alter

2:Form1 提交 -> Ajax 更改 form2 值。您可能需要将它们合并到相同的表单 ID

示例模块提供有关表单 Ajax 的所有编码,例如“添加更多”按钮

https://www.drupal.org/project/examples

在此处输入图像描述

安装示例模块后,启用 ajax_example,访问路径示例/ajax_example/dependent_dropdown_degrades_no_js 在 ajax_example 中,您将获得所有编码帮助解决您的问题。试着读一下。:)

    $items['examples/ajax_example/dependent_dropdown_degrades_no_js'] = array(
    'title' => 'Dependent dropdown with javascript off',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('ajax_example_dependent_dropdown_degrades', TRUE),
    'access callback' => TRUE,
    'file' => 'ajax_example_graceful_degradation.inc',
    'weight' => 5,   );

推荐阅读