在我的代码中动态填充select

时间:2012-06-18 09:26:40

标签: php jquery json

我是json n php的新手。
使用下面的代码获取单选按钮复选框和文本框的数据与json。它工作正常,但我不知道如何以相同的方式在选择框中填充数据。

function get_input_value(name, rval) {

    //console.log(name + ' && ' + rval);
    var i = 0;
    var chk = $('input[name="' + name + '"]');
    while (i < chk.length) {
        //console.log($(chk[i]));
        if ($(chk[i]).val() == rval) {
            //console.log('loopvalue => ' + i);
            $(chk[i]).prop('checked', true);
            }
            i++;
        }
}


function loadJson (table, id) {

    $.get("json-object.php", {'table': table, 'id':id}, function (data) {


        console.log(data);

        $.each(data, function (k, v) {
            if ($('input[name="'+k+'"]').is('input[type="text"]')) {
                $('input[name="'+k+'"]').val(v);
            } 
            if ($('select[name="'+k+'"]').is('input[type="radio')) {
                get_input_value(k,v);

            } 
            if ($('input[name="'+k+'"]').is('input[type="checkbox"]')) {
                get_input_value(k,v);
            } 
         console.log(k+' ==> '+v);  
        });
    }, 'json');
}

1 个答案:

答案 0 :(得分:2)

您的代码只是设置文本框的值,并根据PHP输出自动选择某些复选框。

要让它在下拉列表中自动设置正确的项目,您需要更改错误的代码:

if ($('select[name="'+k+'"]').is('input[type="radio')) {
    get_input_value(k,v);
} 

对此:

$('select[name="'+k+'"]').val(v);

(没有必要检查<select>的类型,因为它没有)