在ajax数据中,数据未在字段中显示

时间:2017-07-22 07:57:48

标签: javascript html ajax

<script>
function get_customer() {

        $("#customer").html('');
        $("#customer").html('<option value="0">SELECT CUSTOMER</option>');
        $.ajax({
            url: '<?=base_url();?>Drop_downs/get_customer/',
            type: 'POST',
            dataType: 'html',
            success: function(response) {
                $("#customer").append(response);
                console.log(response);
            }

        });

}</script>

这是我的HTML

<select name="customer" id="customer" class="form-control select2" required tabindex="1" onFocus="get_customer()">
          <option>SELECT CUSTOMER</option>
</select>

5 个答案:

答案 0 :(得分:0)

响应不是HTML节点,因此您无法附加它。请改用{{1}}。

答案 1 :(得分:0)

您似乎正在接收选项标记(html代码),因此您必须使用$('#customer')。html(response);

答案 2 :(得分:0)

<script>
function get_customer() {
     $("#customer").html('');
     $("#customer").html('<option value="0">SELECT CUSTOMER</option>');
     $.ajax({
            url: '<?=base_url();?>Drop_downs/get_customer/',
            type: 'POST',
            dataType: 'json',
            success: function(response) {
                $("#customer").html(response);
                console.log(response);
            }
        });

}</script>

答案 3 :(得分:0)

如果不知道'响应',我们将无法提供具体的帮助。尽管如此,以下内容可以帮助您:

添加硬编码值

要为其添加新选项,并在下拉框中显示文本“文本1”,并且值“Value1”是从表单提交的内容,请执行以下操作:

var select = document.getElementById("customer");
select.options[select.options.length] = new Option('Text 1', 'Value1');

从对象添加选项

如果您有一个对象要将属性名称用作选项的值,并将属性值用作要显示的文本,则可以执行以下操作:

var myobject = {
    ValueA : 'Text A',
    ValueB : 'Text B',
    ValueC : 'Text C'
};

var select = document.getElementById("customer");
for(index in myobject) {
    select.options[select.options.length] = new Option(myobject[index], index);
}

注意虽然上面是一个对象,但它经常被错误地称为关联数组,即使从技术上讲它也不是。它可以作为对象访问,例如myobject.ValueA,或者像数组一样,例如MYOBJECT [ '值a']

现在,这段代码是通用的,希望能帮助您实现所需。但是,如果您可以更详细地更新您的问题,例如回复的内容,我将能够提供更多帮助并为您提供解决方案。

可能的JQuery解决方案:

如果您正在使用JQuery,那么它变得更简单:

$('#customer').append($('<option>', {
    value: 1,
    text: 'My option'
}));

如果您要从一组项目中添加选项,则可以执行以下操作:

    var myOptions = {
                     val1 : 'Blue',
                     val2 : 'Orange'
                    };
var mySelect = $('#customer');
$.each(myOptions, function(val, text) {
    mySelect.append(
        $('<option></option>').val(val).html(text)
    );
});

答案 4 :(得分:0)

请提供console.log(响应); 由于我不知道您的回复,我认为您已在'customer_name'中取了客户名称。请尝试以下代码。

<script>
function get_customer() {
     $("#customer").html('');
     $("#customer").html('<option value="0">SELECT CUSTOMER</option>');
     $.ajax({
            url: '<?=base_url();?>Drop_downs/get_customer/',
            type: 'POST',
            dataType: 'json',
            success: function(response) {
                var i = 0;
                while (i < data.length)
                    {

                        $('<option>').text(data[i].customer_name).appendTo('#customer');
                        i++;
                    }
            }
        });

}</script>