我在这里要做的是当有人从第一个选择输入中选择汽车标记时填充第二个(汽车模型)。
我的汽车模型数据库中有:
list_vehicle_models - models table
[id] [mark_id] [value_model]
对于标记
list_vehicle_marks - marks table
[id] [value]
这是我的 Controller ,预计会收到带有基于 list_vehicle_marks 值的 ID 的 ajax 请求:
function models($mark_id){
$this->db->select();
$this->db->from('list_vehicle_models');
$this->db->join('list_vehicle_marks','list_vehicle_models.mark_id = list_vehicle_marks.id');
$this->db->where('list_vehicle_marks.id',$mark_id);
$query = $this->db->get()->result_array();
return $query;
}
(不需要这个 Controller 函数示例,因为它工作正常。) 这是我的观点,我有 foreach 来填充标记车辆,当有人根据我在选择值中输入的标记 ID 选择要在第二个选择输入中执行的标记时:
<select name="mark_vehicles" id="mark_vehicles">
<option value="value1">-select-</option>
<?php foreach($vehicle_mark as $mark){ ?>
<option value="<?php echo $mark['id']; ?>">
<?php echo $mark['value']; ?></option>
<?php } ?>
</select>
<select name="mark_models" id="mark_models">
<option value=""></option>
</select>
所以我的问题是当有人选择 ex 时如何发送 ajax 或 jquery post 请求。 Audi 在第二个要执行的选择框上基于 list_vehicle_models 数据库中的所有 audi 模型。
谢谢。
等待一些帮助。
最佳答案
您需要绑定(bind)到mark_vehicles
的onChange
事件。使用 jQuery,这将是:
$("#mark_vehicles").change(function() {
var selectedMark = $("mark_vehicles").val();
if (selectedMark != "") {
$.ajax({
type: "GET",
url: "<controller>/models/" + selectedMark,
success: function(data) {
$("mark_models").html("");
$("mark_models").append("<option value=''></option>");
$.each(data, function() {
$("mark_models").append("<option value='" + this.id + "'>" + this.value + "</option>");
});
}
});
}
});
关于使用 jQuery 发出 AJAX 调用的文档是 here .
关于php - 根据第一个选择值(车辆模型)从数据库中填充第二个选择 - codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20689275/