我有一辆车" make"和汽车"型号"我的数据库中的表。当我回应汽车"制造"它工作正常。但是,我想要汽车"型号"下拉显示为基于所选" make"的ajax,它在视图中不起作用
但是,我需要的所有信息都显示在控制台的网络选项卡上。
哪里可以出问题?这是我的ajax代码:
<script type="text/javascript">
var base_url = "<?php echo base_url();?>";
$(document).ready(function() {
$('select[name="make"]').on('change', function() {
var makeid = $(this).val();
if(makeid) {
$.ajax({
url: base_url + 'myform/ajax/'+makeid,
type: "GET",
dataType: "json",
success:function(data) {
$('select[name="model"]').empty();
$.each(data, function(key, value) {
$('select[name="model"]').append('<option value="value.id">'+ 'value.title' +'</option>');
});
}
});
}else{
$('select[name="model"]').empty();
}
});
});
</script>
以下是观点:
<?php $attributes = array( 'name' => 'addcar', 'id' => 'addcar'); ?>
<?php echo form_open_multipart('cars/create', $attributes); ?>
<div class="form-group label-floating">
<label class="control-label">
Марка
<small>*</small>
</label>
<select id="make" name="make" class="selectpicker" data-style="select-with-transition" required="true">
<option value=""></option>
<?php foreach($makes as $make): ?>
<option value="<?= $make['id']; ?>"><?= $make['maketitle']; ?></option>
<?php endforeach; ?>
</select>
</div>
<div class="form-group label-floating">
<label class="control-label">
Модель
<small>*</small>
</label>
<select id="model" name="model" class="selectpicker" data-style="select-with-transition" required="true">
</select>
</div>
</form>
答案 0 :(得分:0)
您要附加选择元素,但实际上您需要插入其中。只需获取select中的第一个(选项)元素,然后附加到该元素,如下所示:
<select>
<option id="firstOption">First Option</option>
</select>
$("#firstOption").append(...)
顺便说一句,为什么value.title在引号内?
+ 'value.title' +
答案 1 :(得分:0)
我找到了解决问题的方法。当我使用“Creative Tim”管理仪表板时,他们有自己的课程。当我从其工作的选择部分中删除class =“selectpicker”时。实际上,我不知道它们之间有什么联系?
答案 2 :(得分:-1)
您没有正确编写您的值,并且您需要将响应中对象的属性与您尝试输出的内容相匹配:
$('select[name="model"]').append('<option value="value.id">'+ 'value.title' +'</option>');
应该是
$('select[name="model"]').append('<option value="' + value.id + '">'+ value.modeltitle +'</option>');