我的下拉表单的代码很好用
<?php echo form_label('Model: ', 'model'); ?>
<?php echo form_dropdown('model', $model_dropdown, '', set_value('model', '', 'id="model"')); ?>
<?php echo form_label('Make: ', 'make'); ?>
<?php echo form_dropdown('make', $make_dropdown, '', set_value('make', '', 'id="make"')); ?>
但后来我想通过一些动态下拉的jquery来增强它,所以我把它改成了这个
<label for="make">Make: </label>
<?php echo form_dropdown('id', $make_dropdown, '', 'id="make"'); ?><br /></td>
<?php $models['#'] = 'Please Select'; ?>
<label for="model">Model: </label>
<?php echo form_dropdown('model_id', $models, '', 'id="models"'); ?><br /></td>
用于js
$(document).ready(function(){
$('#make').change(function(){
$("#models > option").remove();
var id = $('#make').val();
$.ajax({
type: "POST",
url: "site/get_models/"+id,
datatype : "json",
success: function(models) {
$.each(models,function(id,model)
{
var opt = $('<option />');
opt.val(id);
opt.text(model);
$('#models').append(opt);
});
}
});
});
});
但是现在没有提交值,而是ID,这在查看代码时很有意义。需要更新什么来解决这个问题?
由于
编辑:Make和Model下拉列表的ID是插入的内容,我希望代替它,就像我在添加jquery之前使用它一样。
例如,make下拉将有惠普或戴尔,模型将有模型,提交时,这些值将被插入,但我只是得到ID ......
答案 0 :(得分:0)
尝试改变:
opt.val(id);
到
opt.val(model);
更新: 好的,所以这适用于一种数据结构类型。我建议你定义返回值类型,你可以这样做:
来自ajax request = {“type”:“model”,“id”:“12345”,“model”:“酷模型”}并且您的成功句柄可以执行以下操作:
success: function(successData){
if(successData.type === "model"){
//do your loop to create the models markup
else{
//we have "make" data, handle that here..
}
}