【问题标题】:Dependable dropdown on dynamic fields动态字段的可靠下拉列表
【发布时间】:2019-09-01 06:05:33
【问题描述】:

谁能帮助我并给我一个线索

每当我单击添加更多时,我都会尝试添加可靠的下拉列表,但在我的情况下,第一个字段仅在我单击添加更多时才有效,类别选项卡有效,但它无法获取远离我想要的方式的设备,我想如果我点击类别,设备将显示,如果我点击添加更多,它会执行相同的功能

这是我的代码:

$bquery = $db->query("SELECT * FROM category ");
            $browCount = $bquery->num_rows;

                 <td><select class="form-control" id="category" name="category[]">
                 <option value="">---Select Category---</option>
                  <?php 
                if($browCount > 0){ 
            while($row = $bquery->fetch_assoc()){ 
                echo '<option value="'.$row['cat_id'].'">'.$row['cat_name'].'</option>';
                     }
                  }else{ echo  '<option value="">Category not available</option>'; }
                 ?></select></td>
                <td><select class="form-control" id="equipments" name="equipments[]">  <option value="">---Select
            Equipment---</option></select></td>

我的脚本

            <script>

            $(document).ready(function(){
              var i=1;

              $('#add').click(function(){
                i++;
                $('#dynamic_field').append('<tr id="row'+i+'"><td><select 
          class="form-control" id="category" name="category"><option
        value="">---Select Category---</option><?php 
                foreach ($Result as $col) {  ?>
                 <option value="<?php echo $col["cat_id"]; ?>"><?php echo $col["cat_name"]; ?></option> <?php }  ?>
     </select></td><td><select class="form-control" id="equipments" name="equipment "><option value="">---Select
        Equipment---</option></select></td>> <td><button type="button"
        name="remove" id="'+i+'" class="btn btn-danger
        btn_remove">X</button></td></tr>');
             });

              $(document).on('click', '.btn_remove', function(){
                var button_id = $(this).attr("id"); 
                $('#row'+button_id+'').remove();
              });
            });
            </script>

【问题讨论】:

  • 您能解释一下您的期望吗?添加更多按钮的功能是什么?
  • 我在上面附加了图片链接...添加更多按钮添加了另一个选择选项字段,因此每次我单击该按钮时都会添加另一个字段...问题出在第一个选择选项上字段代码工作正常它显示类别和设备i.imgur.com/W3ij1xF.png 但然后我单击按钮类别代码仅有效并且无法获取第二字段i.imgur.com/kbSdjhI.png的设备
  • 我没有看到任何获取设备数据的代码。因为您想在 java 脚本中动态添加控件,您的方法应该是,一旦您添加了控件,您必须发送 ajax 帖子以获取来自 DB 的设备信息并将响应附加到设备选择控件。
  • 我有那个,嗯,我很困惑先生

标签: javascript php mysql ajax


【解决方案1】:

类别和设备的id属性必须唯一。

ID 是唯一的 每个元素只能有一个 ID 每个页面可以有 只有一个具有该 ID 的元素

你可以像下面这样修改你的代码。

$('#add').click(function(){
            i++;
            $('#dynamic_field').append('<tr id="row'+i+'"><td><select 
      class="form-control"   onchange="categorychage(this,'+i+')" name="category"><option
    value="">---Select Category---</option><?php 
            foreach ($Result as $col) {  ?>
             <option value="<?php echo $col["cat_id"]; ?>"><?php echo $col["cat_name"]; ?></option> <?php }  ?>
 </select></td><td><select class="form-control" id="equipments'+i+'" name="equipment "><option value="">---Select
    Equipment---</option></select></td>> <td><button type="button"
    name="remove" id="'+i+'" class="btn btn-danger
    btn_remove">X</button></td></tr>');
         });

   $("row"+i).find("[name=category]").trigger("change");

          $(document).on('click', '.btn_remove', function(){
            var button_id = $(this).attr("id"); 
            $('#row'+button_id+'').remove();
          });
        });

更改事件操作将是单独的功能

function categorychage(cat,equipmentsid)
        {
            var catID = $(cat).val();
          if (catID) {
           $.ajax({
            type: 'POST',
            url: 'data.php',
            data: 'cat_id=' + catID,
            success: function(html) {
             $('#equipments').html(html);
            }
           });
          } else {
           $('#equipments'+equipmentsid).html('<option value="">Select Equipment First</option>');
          }
        }

如果您查看代码,我已经删除了类别 id 属性并通过附加“i”变量更改了每个设备的设备 id 属性。

希望对你有帮助

您还需要更改此代码

<td><select class="form-control" id="category"  onchange="categorychage(this,0)" name="category[]">
             <option value="">---Select Category---</option>
              <?php 
            if($browCount > 0){ 
        while($row = $bquery->fetch_assoc()){ 
            echo '<option value="'.$row['cat_id'].'">'.$row['cat_name'].'</option>';
                 }
              }else{ echo  '<option value="">Category not available</option>'; }
             ?></select></td>
            <td><select class="form-control" id="equipments0" name="equipments[]">  <option value="">---Select
        Equipment---</option></select></td>

【讨论】:

  • 我不工作,但你给我一个想法先生,所以我可以通过添加增量值来更改元素的名称来更改元素名称类似的东西?...我可能会尝试我的一些想法
  • 更改类别和设备 id 值应该可以解决您的问题。错误是什么?
  • 没有报错但是点击添加更多按钮后仍然无法获取第二字段的设备值
  • 能不能换个第二个过滤器类别试试看
  • 当我改变它时,它不再获取设备......我会尝试重新检查它
猜你喜欢
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 2013-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-13
相关资源
最近更新 更多