php - 如何使用下拉列表中的 ajax codeigniter 根据包含在第二个表中的第一个表 id 获取数据
问题描述
我有三个表,如tbl_customers
, tbl_items
, tbl_customersOrders
。我将tbl_customers ID
and作为外键插入其中tbl_items ID
。tbl_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);
}
解决方案
推荐阅读
- python - 如何将此代码转换为列表理解格式?
- javascript - JavaScript 上用于 on 函数的顺序事件
- javascript - 如何在我的 ESM(ECMA 模块加载器)项目中使用 Cucumber?
- ios - 在某些 iOS 设备上无法正确显示离子载玻片
- pine-script - 如何在 Pine Script 中访问当前价格?
- reactjs - 反应状态未在功能组件中更新
- python - 如何使用 csv 模块用空格和换行符引用所有字符串
- c - 如何在 Windows 上使用 MuJoCo
- sql - 合并并非所有列都存在的三个表
- ruby-on-rails - Ruby on Rails Rake Aborted 无法修改 Frozen Hash mysql2