代码点火器动态表单下拉列表,不返回值,而是返回 ID


Codeigniter dynamic form dropdown, not returning value but the ID

我的下拉表单有这个代码,工作正常

<?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,这在查看代码时是有意义的。需要更新什么才能解决此问题?

谢谢

编辑:品牌和型号下拉列表的 ID 是正在插入的内容,我想要这个值,就像我在添加 jquery 之前它是如何工作的

例如,make下拉菜单将具有HP或Dell,并且型号将具有型号,提交时,将插入这些值,但我只是获取ID...

尝试更改:

opt.val(id);

opt.val(model);

更新:好的,所以这适用于一种数据结构类型。我建议定义返回值类型,您可以在其中执行以下操作:

-

-> ajax 请求中的"成功数据" = {"类型":"模型","id":"12345","模型":"一个很酷的模型"}

您的成功句柄可以执行以下操作:

    success: function(successData){
        if(successData.type === "model"){
          //do your loop to create the models markup
        else{
           //we have "make" data, handle that here..
        }
    }