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

Ajax 如何强制Drupal表单清除以前的结果,ajax,forms,drupal-7,Ajax,Forms,Drupal 7,最近,我在一个项目中工作,我试图借助ajax技术生成表单元素,用代码实现表单。情况是,用户应该能够从选项列表中选择,然后由于他的选择,应该出现另一个选项列表,然后由于他/她从第二组选项中选择,他/她应该看到第三组选项。现在的问题是,当用户试图更改第一组中的第一个选项时,第二个选项将被重新生成,但第三个选项仍然会粘在页面上。我试图使用形式_sate['rebuild']=TRUE 但它并没有起作用,所有的表单元素都消失了。有人能帮我看看应该实现哪些代码以及应该在哪里使用吗?如果没有任何代码,几乎不

最近,我在一个项目中工作,我试图借助ajax技术生成表单元素,用代码实现表单。情况是,用户应该能够从选项列表中选择,然后由于他的选择,应该出现另一个选项列表,然后由于他/她从第二组选项中选择,他/她应该看到第三组选项。现在的问题是,当用户试图更改第一组中的第一个选项时,第二个选项将被重新生成,但第三个选项仍然会粘在页面上。我试图使用形式_sate['rebuild']=TRUE
但它并没有起作用,所有的表单元素都消失了。有人能帮我看看应该实现哪些代码以及应该在哪里使用吗?

如果没有任何代码,几乎不可能提供帮助,除非说检查一下,特别是ajax示例模块

基本原则是,您需要一个围绕第二个和第三个select元素的容器,它将被第一个元素上的ajax集所取代。然后,您需要在该容器中仅围绕第三个select元素的另一个容器,该容器将被第二个select元素上的ajax集替换


希望这能有所帮助。

好吧。。表单页面可能包含以前的值,因为$u 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", ...));
}
?>