如何强制Drupal表单清除以前的结果

时间:2011-09-21 04:11:36

标签: ajax forms drupal-7

最近我正在研究一个项目,并尝试在ajax技术的帮助下生成表单元素(实现带代码的表单)。情况是用户应该能够从一个选项列表中进行选择,然后由于他选择了另一个选项列表应该出现,那么由于他/她从第二组选项中选择他/她应该看到第三个系列选择。现在的问题是,当用户尝试更改第一组中的第一个选项时,第二个选项将重新生成,但第三个选项仍然会粘在页面上。我试图使用form_sate ['rebuild'] = TRUE 但它没有奏效,所有形式元素都消失了。任何人都可以帮助我看看应该实现哪些代码以及应该在哪里使用它?

2 个答案:

答案 0 :(得分:0)

没有任何代码,除了要查看examples modules,特别是ajax_example模块外,几乎不可能提供帮助。

基本原则是你需要一个围绕第二和第三选择元素的<div>容器,它将被第一个元素上的#ajax集替换。然后你需要另一个只包含第三个选择元素的容器,它将被第二个选择元素上的#ajax组替换。

希望有所帮助。

答案 1 :(得分:0)

嗯..表单页面可能包含以前的值,因为$ _POST字段变量..

例如,如果我想在POST提交时显示清除“添加”表单, 我这样做是为了通过ajax清除drupal以前的表单值:

<?php
// AJAX POST handler...
....
$my_form = drupal_render(drupal_get_form("the_form", ...));
$errors = form_get_errors();
if (!$errors) {
  // re-render clean form, unset your POST fields....
  unset($_POST['link_path']);
  unset($_POST['link_title']);
  unset($_POST['parent']);
  unset($_POST['weight']);
  $my_form = drupal_render(drupal_get_form("the_form", ...));
}
?>