如何使用基于2个其他下拉框的动态日期填充下拉列表

时间:2009-12-27 17:02:18

标签: ajax drop-down-menu populate

我有3个下拉列表 1.在这里我需要选择一种产品质量 2.在这里我需要选择标准或非标准 如果是IF标准,那么第3个列表需要填充动态数据 如果非标准则没有(第3个框空)

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

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

第一个列表被命名为quality 第二个列表是命名测量 第三个列表名为lengte_breedte

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

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

echo 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',{         方法:'post',         参数:qs,         onComplete:function(transport){             //收集回复,对象反应             var obj = eval(transport.responseText);             //清除选择项目             $('lengte_breedte')。options.length = 0;             //迭代并构建新菜单             $('lengte_breedte')。options [$('lengte_breedte')。options.length] = new Option(' - Select - ','');             var ListItems = new Array();             //创建新的选择项目选项             obj.each(函数(t)的{                 ListItems [ListItems.length] =新选项(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     }); } //结束功能

1 个答案:

答案 0 :(得分:0)

所以看起来只有真正需要填充第3列表,如果第2个被选中为标准,首先要做的是在事件监听器中添加if条件,正在监视第2个列表的更改。如果非标准清空第3个清单,那么你就完成了。否则,如果标准对nameRequest.php执行ajax调用,则将列表1的当前值作为参数传递。返回电话后,填写第3个列表,你就可以开始了。

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