如何根据其他 2 个下拉框使用动态日期填充下拉列表

发布于 2024-08-16 07:32:20 字数 1641 浏览 4 评论 0原文

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

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

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

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

它基于 mysql 数据库,我在其中选择以下内容: 从 fb_lengte_breedte 中选择 lengte_breedte,其中测量值 = ?

我有 Json header('内容类型:application/x-json');

回显 json_encode($fb_query); 出口;

document.observe('dom:loaded', function(f){ $('measurements').observe('change', populateMeasurements).bindAsEventListener(); }); function populateMeasurements(e){ // collect params var qs = '&measurements=' + $F('measurements'); // create request var req = new Ajax.Request('nameRequest.php', { method: 'post', parameters: qs, onComplete: function(transport){ // collect response, evel to object var obj = eval(transport.responseText); // clear select item $('lengte_breedte').options.length = 0; // iterate and build new menu $('lengte_breedte').options[$('lengte_breedte').options.length] = new Option('-- Select --', ''); var ListItems = new Array(); // create new select item options obj.each(function(t){ ListItems[ListItems.length] = new Option(t.lengte_breedte, t.lengte_breedte); }); // populate new item for(var i=ListItems.length - 1;i>=0;i--){ $('lengte_breedte').options[$('lengte_breedte').options.length] = ListItems[i]; } } // onComplete }); } // end function

I have 3 dropdownlists
1. here I need to select a quality of products
2. here I need to select standard or non standard
IF standard then the 3rd list needs to be populated with dynamic data
IF non standard then nothing (3rd box empty)

However the populated list (3rd) needs another selection which is based also on the selection out of the first dropdown list

I have no idea how to combine the 3 lists and make it populate the 3rd one

First list is named quality
Second list is named measurements
Third list is named lengte_breedte

it is based on a mysql database where I select the following:
SELECT lengte_breedte FROM fb_lengte_breedte WHERE measurements = ?

And I have the Json
header('Content-type: application/x-json');

echo json_encode($fb_query);
exit;

document.observe('dom:loaded', function(f){

$('measurements').observe('change', populateMeasurements).bindAsEventListener();
});

function populateMeasurements(e){

// collect params

var qs = '&measurements=' + $F('measurements');

// create request
var req = new Ajax.Request('nameRequest.php', {
method: 'post',
parameters: qs,
onComplete: function(transport){

// collect response, evel to object
var obj = eval(transport.responseText);

// clear select item
$('lengte_breedte').options.length = 0;

// iterate and build new menu
$('lengte_breedte').options[$('lengte_breedte').options.length] = new Option('-- Select --', '');
var ListItems = new Array();

// create new select item options
obj.each(function(t){
ListItems[ListItems.length] = new Option(t.lengte_breedte, t.lengte_breedte);
});

// populate new item
for(var i=ListItems.length - 1;i>=0;i--){
$('lengte_breedte').options[$('lengte_breedte').options.length] = ListItems[i];
}

} // onComplete
});

} // end function

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

﹏半生如梦愿梦如真 2024-08-23 07:32:20

因此,如果第二个列表被选择为标准,那么似乎只真正需要填充第三个列表,而要做的第一件事就是在事件侦听器中添加一个 if 条件,该条件正在监视第二个列表的更改。如果非标准,则清空第三个列表,您就完成了。否则,如果标准,则对 nameRequest.php 进行 ajax 调用,传递列表 1 的当前值作为参数。电话返回后,填充第三个列表,您就可以开始了。

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

So it seems like only only really need to populate the 3rd listed if the 2nd is selected to standard to the first thing to do is add an if condition in your event listener that is watching for the change of the 2nd list. If non standard empty the 3rd list and you are done. Else if standard do the ajax call to nameRequest.php passing the current value of list 1 as a parameter that. Upon return of the call populate the 3rd list and you are good to go.

As a note you should disable the submit button while waiting for the ajax to populate the 3rd list then reenable when you are done building that list from the returned data.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文