【问题标题】:Show a second dropdown based on previous dropdown .in Code igniter根据之前的下拉菜单显示第二个下拉菜单 .in Codeigniter
【发布时间】:2013-01-15 09:01:56
【问题描述】:

我有两个下拉框,实际上我通过调用一个 id 使用 jquery 和 ajax 完成了这个功能,如果我选择一个东西,它将出现在第二个选择框中,但我面临的主要问题是我使用的是一个选择框使用一些名为“cho”的类名的模板,就好像我不使用这个类显然我的选择框看起来是有线的,所以我喜欢它的风格。所以如果我在我的第二个选择框中使用这个类,结果display 那么该功能将不起作用,但如果我不使用该类,那么它将起作用,所以我想要的是: 我也想使用 css 类并实现功能我检查了每个 css 文件但我找不到 cho 类所以我认为如果我不能更改 css 文件可能有 jquery 中的方法我会解决这个问题。

这是我的第一个选择框,选择框和 css 工作正常。

<?php echo form_dropdown('cat_id', $records2, '#', 'id="category" class =  "cho"');?>

第二个选择框 - 没有 css ..功能成功

   <?php echo form_dropdown('item_id', $records3, '#', 'id="items"'); ?>

使用 css--功能不起作用,但 css 可以:

   <?php echo form_dropdown('item_id', $records3, '#', 'id="items" class = "cho"'); ?>

我的javascript:

<script type="text/javascript">// <![CDATA[
    $(document).ready(function(){       
        $('#category').change(function(){ 
            $("#items > option").remove(); 
            var category_id = $('#category').val();  
            $.ajax({
                type: "POST",
                url: "stockInController/get_Items/"+category_id, 

                success: function(items) 
                {
                    $.each(items,function(item_id,item_name) 
                    {
                        var opt = $('<option />'); 
                        opt.val(item_id);
                        opt.text(item_name);
                        $('#items').append(opt); 
                    });
                }                 
            });             
        });
     });        
 </script>

两个下拉列表的html文件源

   <div class="controls">
 <select name="cat_id" id="category" class = "cho">
         <option value="1">jeans</option>
         <option value="2">shirts</option>
     </select>
     <br />
   </div>
</div>

项目: 自卫队 贝洛 游戏玩家 dsf 蓝色的

【问题讨论】:

  • 向我们展示您的下拉页面来源。只需选择这两个下拉列表并右键单击并单击查看所选来源。似乎 Jquery 或 Javascript 可能正在删除您的 ID 并放置他们的自定义 ID。跨度>
  • 是的,我是这么想的 .. 那就是我是 a=我可以通过 jquery 解除阻止它的任何可能性 .. 好的,等我把文件放到临时服务器上,这样你就可以看到它了
  • 只显示您的页面来源可能我们可以找到替代方案。
  • 好的,我更新了我的问题......你可以看到源代码..因为我在第二个选择框中使用 cho 类,所以从这个源代码功能不起作用
  • 您的商品 ID 没有受到干扰。你的萤火虫控制台有什么错误吗?还是你有多个 ID 的命名项?

标签: php jquery css ajax codeigniter


【解决方案1】:

您是否尝试过 firebug 或任何其他类似工具来找出您的“cho”类。也试试这个代码

$("#items").addClass("cho");

【讨论】:

  • 是的,我已经做到了..它会在 html 中向我展示类似的课程..“cho chzn-done”我是否在临时服务器上上传所以你会看到它......因为我正在运行本地主机上的站点
  • 我也完成了你的代码......css工作但功能不
【解决方案2】:

OK 尝试通过名称选择:

   <script type="text/javascript">// <![CDATA[
$(document).ready(function(){       
    $('#category').change(function(){ 
        $('select[id="items_chzn"] > option').remove(); 
        var category_id = $('#category').val();  
        $.ajax({
            type: "POST",
            url: "stockInController/get_Items/"+category_id, 

            success: function(items) 
            {
                $.each(items,function(item_id,item_name) 
                {
                    var opt = $('<option />'); 
                    opt.val(item_id);
                    opt.text(item_name);
                    $('select[id="items_chzn"]').append(opt); 
                });
            }

        });

    });
 });




        </script> 

如果您仍然遇到问题,请尝试在 ajax 调用后在函数中使用警报。

【讨论】:

  • 是的,同样的问题..代码只能在没有 css 的情况下工作......如果我这样做了 alert(item_id);或警报(项目名称)..警报框不会出现......如果我做简单的警报(“你好”)..然后它会弹出
  • 就在 opt.text(item_name); 之后添加警报(选择);看看打印的值是多少。此外,如果您可以显示类为“class="cho chzn-done"的页面源,那就太好了
  • 这是萤火虫显示的内容
    • 你好
    • 跨度>
  • 有问题的items改为items_chzn。将所有项目重命名为 items_chzn。
  • ,,我应该重命名 id 或 class 还是什么?我没有得到你。
猜你喜欢
相关资源
最近更新 更多
热门标签