Javascript jQuery Select2-选择ajax提交的值

Javascript jQuery Select2-选择ajax提交的值,javascript,php,jquery,ajax,jquery-select2,Javascript,Php,Jquery,Ajax,Jquery Select2,我有一个表单,它通过ajax提交一个新条目并返回条目数据。我正在尝试在Select2字段中自动选择返回的数据。我可以获取作为输入值输入的id,但我不确定如何获取要在范围中显示的文本 以下是迄今为止我掌握的JS: function clientFormatResult(client){ var markup = client.first_name + ' ' + client.last_name + ' (' + client.username + ')'; return mark

我有一个表单,它通过ajax提交一个新条目并返回条目数据。我正在尝试在Select2字段中自动选择返回的数据。我可以获取作为输入值输入的id,但我不确定如何获取要在范围中显示的文本

以下是迄今为止我掌握的JS:

function clientFormatResult(client){
    var markup = client.first_name + ' ' + client.last_name + ' (' + client.username + ')';
    return markup; 
}

function clientFormatSelection(client) {
    $('#client-input').empty();
    $('#client-input').append('<input type="hidden" name="client" value="' + client.id + '" />');
    return client.first_name + ' ' + client.last_name + ' (' + client.username + ')';
}

$('#client-selection').select2({
    placeholder: 'Select a client',
    allowClear: true,
    minimumInputLength: 1,
    ajax: {
        type: 'POST',
        url: 'clients/get_client_list',
        dataType: 'json',
        data: function (term) {
            return {filter: term};
        },
        results: function (data) {
            return {results: data};
        }
    },
    formatResult: clientFormatResult,
    formatSelection: clientFormatSelection,
    dropdownCssClass: 'bigdrop',
    initSelection: function (element, callback) {
        var id = element.val();
        if(id != '') {
            $.ajax('clients/get_client_list/'+id).done(function(data) {
                data = $.parseJSON(data);
                callback(data);
            });
        }
    }
});

$('#add-client-form').submit(function(e) {
    e.preventDefault();
    var form = $(this),
        url = form.attr('action'),
        data = form.serialize();
    $.post(url, data, function(data, status, xhr) {
        $('.form-response').fadeOut(400);
        if(status == 'success') {
            $('#add-client-modal').modal('hide');
            data = $.parseJSON(data);
            $('#client-selection').select2('val', data.client_id);
        } else {
            $('#add-client-failure').fadeIn(400);
        }
    });
});
函数clientFormatResult(客户端){
var markup=client.first_name+“”+client.last_name+”(“+client.username+”);
返回标记;
}
函数clientFormatSelection(客户端){
$(“#客户端输入”).empty();
$(“#客户端输入”).append(“”);
返回client.first_name+“”+client.last_name+”(“+client.username+”);
}
$(“#客户选择”)。选择2({
占位符:“选择客户端”,
allowClear:是的,
最小输入长度:1,
阿贾克斯:{
键入:“POST”,
url:“客户端/获取客户端列表”,
数据类型:“json”,
数据:功能(术语){
返回{filter:term};
},
结果:功能(数据){
返回{结果:数据};
}
},
formatResult:clientFormatResult,
formatSelection:clientFormatSelection,
dropdownCssClass:“bigdrop”,
initSelection:函数(元素,回调){
var id=element.val();
如果(id!=''){
$.ajax('clients/get\u client\u list/'+id).done(函数(数据){
data=$.parseJSON(数据);
回调(数据);
});
}
}
});
$(“#添加客户端表单”).submit(函数(e){
e、 预防默认值();
变量形式=$(此),
url=form.attr('action'),
data=form.serialize();
$.post(url、数据、函数(数据、状态、xhr){
$('.form response').fadeOut(400);
如果(状态=‘成功’){
$(“#添加客户端模式”).model('hide');
data=$.parseJSON(数据);
$(“#客户端选择”).select2('val',data.client_id);
}否则{
$(“#添加客户端故障”).fadeIn(400);
}
});
});

如您所见,显示的文本类似于“John Smith(smithj)”。

我将其整理出来,这是我返回的数据的问题。Select2需要一个
id
变量,但我将其作为
client\u id
返回