【问题标题】:Change select options based on another select根据另一个选择更改选择选项
【发布时间】:2020-07-12 20:04:41
【问题描述】:

我最近一直在尝试使用 Php 和 CodeIgniter,并创建了一个简单的项目,您可以在其中下订单。现在在订单表格上有一些选项,用户可以从下拉菜单中选择他/她想要的东西。我设法显示了数据库中的可用选项,现在我想做的是当用户从下拉菜单之一中选择一个选项时,然后显示选项的下一个下拉菜单之一仅与该选项相关联。

例如,更具体地说,假设用户将购买一部手机,首先他应该选择品牌,比如三星,现在下一个下拉列表应该只显示来自三星的型号,而不是来自其他品牌的型号。

到目前为止,我所做的是当用户选择品牌时,我会在下一个下拉菜单中选择该品牌的型号,但如果他点击更多选项,那么所有品牌的所有型号都将可用.

我已经用 javascript 做到了。

    {
        if(x == 1)
        { 
            id_mentese = 1; 
        }

        $('#model option:selected').removeAttr('selected');
        $('#model').find('option[value='+id_model+']').attr("selected","selected");
        thistext=$('#model option:selected').text();
        $('.form-control').find('button[data-id="model"]').attr("title",thistext);
        $('button[data-id="model"]').find('.filter-option').text('').text(thistext);
    }

其中 x 是品牌的 ID

知道怎么做吗? 另外,如果我可以做到,如果用户不选择品牌,那么模型下拉菜单不应该处于活动状态。 提前致谢。

【问题讨论】:

    标签: php jquery mysql forms codeigniter


    【解决方案1】:

    HTML

    <select id="brand">
      <option value="none">-- Select a brand --</option>
      <option value="samsung">Samsung</option>
      <option value="htc">HTC</option>
    </select>
    <select id="cat" style="display:none;">
    </select
    

    JS

    var models = [
      ["A","C","M","J","H"],
      ["htc1","htc2","htc3"]
    ]; //load this from database
    
    $("#brand").change(function(){
      var ind = $("#brand option:selected").index();
      if(ind == 0){
        $("#cat").hide();
      }else{
        $("#cat").empty();
        $.each(models[ind + 1], function(key) {
          $("#cat").append($("<option></option>").attr("value", key).text(key));
        });
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-25
      • 2021-06-08
      • 2016-10-06
      相关资源
      最近更新 更多