2 Codeigniter中的条件下拉列表

时间:2018-09-04 05:10:22

标签: javascript php ajax codeigniter

区主表:

enter image description here

分区表:

enter image description here

District Master District

我有一个表单页面,其中有一个名为Category的下拉列表。在我的地区表中,我保存了地区代码和Category名称。基于类别下拉选择,需要显示区域主表中存在的区域名称。...我可以填充下拉列表,但是当我这样做时,我得到的是区域代码而不是区域名称...有人请帮忙!!!

我的查看页面:

   <select name="category" id="category">
   <option value="Category 1">Category 1</option>
   <option value="Category 2">Category 2</option>
   <option value="Category 3">Category 3</option>
   </select>

   <select name="placename" id="placename">
   <option value="">Please select a Place</option>  
   </select>

控制器:

    public function ajax_place_list() 
     { 
     $this->load->helper('url'); 
     $this->load->model('JcMeetingExpense_model'); 
     $data['district'] = $this->JcMeetingExpense_model->getplace(); 
     echo json_encode($data);
     }

型号:

     function getplace()
      { 
      $this->db->where('district_code',$this->input->post('category'));
      $query = $this->db->get('district');
      return $query->result(); 
      }

脚本

    <script>
     jQuery(document).ready(function($) {
     $("#category").on('change', function() {
     var category= $(this).val();

     if(category){
       $.ajax ({
        type: 'POST',
        url: 'JcMeetingExpense/ajax_place_list',
        data: { category: category},
        success : function(response) {
            var response = $.parseJSON(response);
            $('#placename').val(response.district); 

        },error:function(e){
        alert("error");}
         });
        }
     });
     });

  </script>

2 个答案:

答案 0 :(得分:0)

您可以简单地使用ajax来获取地区名称,并且从db获取值时,即使在类别变化或模糊时也可以进行监听,例如,您在模型部分使用了这样的查询

function getplace()
      { 
        $this->db->where('district_code',$this->input->post('category'));
        $this->db->join('District_Master', 'district.district= District_Master.district_code');//added this
        $this->db->select("District_Master.district_name");//add this
        $this->db->from("district");
        $query = $this->db->get();
        return $query->result(); 
      }

然后用于地区使用下拉列表

<select><option value="//call district_code here "> //call district_name here</option></select> 

使用对象调用上述操作,因为您说您已经在下拉列表中填充了数据,这可能是错误尝试之一,如果有任何错误,请添加注释

答案 1 :(得分:0)

我认为在layer = column[0](input) 表列(district)中类似于district表列(district master)然后

在模型中将内部联接与地区主表一起使用

district_code

使用此查询,您可以从$this->db->select('*'); $this->db->from('district'); $this->db->join('District_Master', 'district.district= District_Master.district_code'); $this->db->where('district.district_code',$this->input->post('category')); $query = $this->db->get(); 表中获取名称,也可以在下拉列表中使用名称