0

我有 3 个下拉列表 1. 在这里我需要选择产品质量 2. 在这里我需要选择标准或非标准 IF 标准然后第三个列表需要填充动态数据 IF 非标准然后什么都没有(第三个框为空)

但是,填充列表(第 3 个)需要另一个选择,该选择也基于第一个下拉列表中的选择

我不知道如何组合这 3 个列表并使其填充第三个

第一个列表命名为质量第二个列表命名为测量第三个列表命名为lengte_breedte

它基于 mysql 数据库,我在其中选择以下内容: SELECT lengte_breedte FROM fb_lengte_breedte WHERE measure = ?

我有 Json header('Content-type: application/x-json');

回声 json_encode($fb_query); 出口;

document.observe('dom:loaded', function(f){ $('measurements').observe('change', populateMeasurements).bindAsEventListener(); }); function populateMeasurements(e){ // 收集参数 var qs = '&measurements=' + $F('measurements'); // 创建请求 var req = new Ajax.Request('nameRequest.php', { method: 'post', parameters: qs, onComplete: function(transport){ // 收集响应,级别到对象 var obj = eval(transport .responseText); // 清除选择项 $('lengte_breedte').options.length = 0; // 迭代并构建新菜单 $('lengte_breedte').options[$('lengte_breedte').options.length] = new Option('-- 选择--', ''); var ListItems = new Array(); // 创建新的选择项选项 obj.each(function(t){ ListItems[ListItems.length] = new Option(t.lengte_breedte, t.lengte_breedte); }); // 填充新项目 for(var i=ListItems.length - 1;i>=0;i--){ $('lengte_breedte').options[$('lengte_breedte').options.length] = ListItems[i ]; } } // onComplete }); } // 结束函数 lengte_breedte').options[$('lengte_breedte').options.length] = ListItems[i]; } } // onComplete }); } // 结束函数 lengte_breedte').options[$('lengte_breedte').options.length] = ListItems[i]; } } // onComplete }); } // 结束函数
4

1 回答 1

0

因此,如果第二个被选择为标准,似乎只需要填充列出的第三个,首先要做的就是在您的事件侦听器中添加一个 if 条件,以观察第二个列表的变化。如果非标准清空第三个列表,您就完成了。否则,如果标准对 nameRequest.php 进行 ajax 调用,则将列表 1 的当前值作为参数传递。呼叫返回后,填充第三个列表,您就可以开始了。

请注意,您应该在等待 ajax 填充第三个列表时禁用提交按钮,然后在您完成从返回的数据构建该列表时重新启用。

于 2009-12-27T17:14:05.687 回答