【发布时间】:2017-12-19 12:44:31
【问题描述】:
我的数据库中有一个汽车“品牌”和汽车“型号”表。当我回声汽车“制造”时,它可以正常工作。但是,我希望汽车“模型”下拉菜单显示为基于所选“品牌”的 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>
【问题讨论】:
-
我在响应中看不到任何名称属性,我只能看到一个标题?最重要的是,附加没有正确转义。像这样,您只需添加字符串(value.id、value.name)。由于您的选择是空的,您是否确认您完全处于成功状态?
-
抱歉,已编辑...
-
还是错应该是:''
-
删除 $(document).ready(function() ,页面加载后超出范围
-
@AhmedSunny 该方法将事件绑定到选择字段,因此在就绪函数中运行它没有问题。