如何在codeigniter中为下拉列表编写更好的方法?

7eumitmz  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(75)

我在codeigniter项目中有一个国家下拉列表。下面是从用户选择的国家中选择一个城市的功能。

public function select_auth_city($user_country){
        if($user_country=='USA
            $user_country=1;
        }elseif($user_country=='CANADA'){
            $user_country=2;
        }elseif($user_country=='Netherland'){
            $user_country=3;
        }elseif($user_country=='BURMA'){
            $user_country=4;
        }
        $query = $this->db->get_where('city', array('country_id' => $user_country));
        $query=$query->result_array();
        return $query;

    }

以下是脚本

<script> 
        $(document).ready(function(){

            $('#user_country').change(function(){
                $('#user_city').html('<option> Fetching...</option>');

                var user_country =$('#user_country').val();

                //alert(new_div);

                $.ajax({
                    type:"post",

                    data:"user_country="+user_country,
                    url:"<?php echo site_url('ajax/select_auth_city/'); ?>",
                    cache:false,
                    success:function(resp){
                        //alert(resp);
                        $('#user_city').html(resp);
                    }
                });
                });
    </script>

我在国家列表中只有四个选项,但问题是当从城市列表中选择城镇时,在实现上面所示的模型中的函数以选择城镇/村庄下拉列表时,该函数不可行,因为将有数百个城市,并且不可能编写类似于下面所示的函数

public function select_auth_town($user_city){
        if($user_city=='New York'){
            $user_town=1;
             ......

我试过从互联网上的教程,但它并没有真正为我工作。我如何才能实现一个功能,选择一个选择下拉菜单,有这么多的选项可供选择,而不膨胀我的源代码。

hjqgdpho

hjqgdpho1#

您必须将国家表ID作为值存储在选项标记中,以便您可以基于此获取数据。
例如

<option value="<?php echo $country['county_id'];?>"><?php echo $country['county_name'];?></option>

你也可以在这里检查我的答案
我要在更改主下拉菜单时生成更新表单然后更新第二个下拉列表

相关问题