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