首页 > 解决方案 > 如何使用下拉列表中的 ajax codeigniter 根据包含在第二个表中的第一个表 id 获取数据

问题描述

我有三个表,如tbl_customers, tbl_items, tbl_customersOrders。我将tbl_customers IDand作为外键插入其中tbl_items IDtbl_customersOrders现在认为是基于第一个下拉列表(这里是tbl_customersOrders ID)我可以在其他下拉列表中获取另外两个字段但是....我需要匹配的客户的名称id......还有匹配的项目id名称喜欢:

三个表的简短描述

我尝试了什么:

控制器代码:

$data['gets_order'] = $this->box_property_model->getCustDataOrder();

型号代码:

 public function getCustDataOrder()
 {
     $this->db->select('*');
     $this->db->order_by('customer_orders_id', 'DESC');
     $query = $this->db->get('tbl_customer_orders');
     return $query->result(); 
 }

查看代码:

 <select name="nestedOrder" class="form-control" >
     <option value="">--- Select Order ---</option>
 <?php if(!empty($gets_order)) {
       foreach($gets_order as $nst){ 
 ?>
     <option value="<?php echo $nst->customer_orders_id; ?>"><?php echo $nst->new_id_generated; ?></option>';
 <?php }  } ?>
 </select>

 <label for="custNested">Customer Name-</label>
 <select name="custNested" id="custNested" class="form-control" >
     <option value="">Select ITEMS ID</option>
 </select>

 <label for="ItemsName">Items Name</label>
 <select name="items_ids" id="getsitemsName" class="form-control" >
     <option value="">Select ITEMS</option>
 </select>

 <label for="testing">Final ITEM Name</label>
 <select name="org_itemsNameValue" id="org_itemsNameValue" class="form-control" >
     <option value="">Select ITEMS Name</option>
 </select>

JS代码:

 <script type="text/javascript">
 $(document).ready(function() {

     $('select[name="nestedOrder"]').on('change', function() {

            var customID = $(this).val();
            alert(customID);

            $.ajax({
            url: '<?php echo base_url();?>/Box_property/DropdownsAjaxNested/'+customID,
            type: "GET",
            dataType: "json",
            success:function(data) {

                $('select[name="custNested"]').empty();
                $('select[name="custNested"]').append('<option value="0">--Select CUSTTT--</option>');
                $.each(data, function(key, value) {

                    $('select[name="custNested"]').append('<option value="'+value.customer_id + '">'+ value.customer_name +'</option>');

                });
            }
            });

            $.ajax({
            url: '<?php echo base_url();?>/Box_property/DropdownsAjaxNestedItems/'+customID,

            type: "GET",
            dataType: "json",
            success:function(data) {

                $('select[name="items_ids"]').empty();
                $('select[name="items_ids"]').append('<option value="0">--Select --</option>');
                $.each(data, function(key, value) {

                    $('select[name="items_ids"]').append('<option value="'+value.items_id +'">'+ value.items_id +'</option>');

                });
            }
            });
     });

     $('select[name="items_ids"]').on('change', function() {

            var items_ids = $(this).val();
            alert(items_ids);      

            $.ajax({
            url: '<?php echo base_url();?>/Box_property/itemsOrdersIDfetch/'+items_ids,

            type: "GET",
            dataType: "json",
            success:function(data) {

                $('select[name="org_itemsNameValue"]').empty();
                $('select[name="org_itemsNameValue"]').append('<option value="0">--Select ITEMS Name--</option>');
                $.each(data, function(key, value) {
                    $('select[name="org_itemsNameValue"]').append('<option value="'+value.items_id + '">'+ value.items_name +'</option>');
                });

            }
            });
     });
 });
 </script>

在控制器中:

 public function DropdownsAjaxNested($id) {
       $result = $this->db->where("customer_id",$id)->get("tbl_customers")->result();
       echo json_encode($result);
 }

 public function DropdownsAjaxNestedItems($id) {
       $result = $this->db->where("customer_orders_id",$id)->get("tbl_items_order")->result();
       echo json_encode($result);
 }

 public function itemsOrdersIDfetch($id){
       $result = $this->db->where("items_id",$id)->get("tbl_items_master")->result();
       echo json_encode($result);
 }

标签: phpajaxcodeigniter

解决方案


推荐阅读