Forms Drupal onChange自动填充另一个CCK选择列表

Forms Drupal onChange自动填充另一个CCK选择列表,forms,drupal,cck,Forms,Drupal,Cck,我已经使用CCK构建了一个多步骤表单,但是我有几个问题尚未解决,但不确定CCK是否可以提供帮助 在表单的一个步骤中,我有两个选择框,第一个是从词汇表中自动填充的,包含以下代码和所有工作 $category_options = array(); $cat_res = db_query('select vid, name from vocabulary WHERE vid > 1 ORDER BY name ASC'); while ($cat_options = db_fetch_objec

我已经使用CCK构建了一个多步骤表单,但是我有几个问题尚未解决,但不确定CCK是否可以提供帮助

在表单的一个步骤中,我有两个选择框,第一个是从词汇表中自动填充的,包含以下代码和所有工作

$category_options = array();
$cat_res = db_query('select vid, name from vocabulary WHERE vid > 1 ORDER BY name ASC');
while ($cat_options = db_fetch_object($cat_res)) {
  $category_options[$cat_options->vid] = $cat_options->name;
}
return $category_options;
我想做的是,当用户从词汇列表中选择一个项目时,它会用term_数据表中的术语自动填充另一个选择框。我有两个问题

1) 我在第二个选择列表中添加了以下代码,只是为了确保它能工作(不能)。每个词汇表都有多个相关术语,但是第二个sql语句只返回一个结果,而它应该返回多个结果(所以这里有点错误)。例如,在term_date表中,有6个术语的vid为3,但我只在选择列表中添加了一个术语

$term_options = array();  
$term_res = db_query('select vid, name from term_data WHERE vid = 3 ORDER BY name ASC'); while ($options = db_fetch_object($term_res)) {    
$term_options[$options->vid] = $options->name;  
}  
return $term_options;
2) 我可以在第一个选择列表中添加一个onChange来调用一个函数来使用CCK自动填充第二个列表,还是必须使用表单API来完成整个表单


如果您有任何帮助或想法,我们将不胜感激。

获取术语的查询似乎有误。我试图纠正:

$term_res = db_query('select tid, name from term_data WHERE vid = 3 ORDER BY name ASC'); 
while ($options = db_fetch_object($term_res)) {    
  $term_options[$options->tid] = $options->name;
}
在代码中,您选择的vid实际上对所有术语都是相等的。然后在同一个key=>下向$term_options数组添加了terms名称,因此只得到了1个元素

考虑第二个问题:我会将整个数据结构(所有词汇表及其术语)作为json发送给客户端(从drupal代码向页面插入js脚本),并使用jquery实现所需的功能