【问题标题】:Can't attach data to select2 option无法将数据附加到 select2 选项
【发布时间】:2019-10-28 08:05:50
【问题描述】:

我想制作编辑表单并将数据库中的数据附加到 select2 选项。当我们逐字键入时,在插入表单中,此 select2 选项在数据库中搜索数据。我无法在此 select2 选项中附加数据。我想让这个 select2 选项填充数据库中的数据,也可以像插入表单一样更改数据。我已经尝试过 $('#requestor').val($row['requestor']);但数据没有出现。谁能帮帮我???

 <select class="requestor form-control" name="requestor" id="requestor" style="width:700px"  required="required">
 <option value=""></option>
 </select>

 //search data in database word by word
 $('.requestor').select2({
            placeholder: 'Requestor Name',
            ajax:{
                url: "<?php echo base_url('Hire_4/select_personnel'); ?>",
                dataType: "json",
                delay: 250,
                processResults: function(data){
                    var results = [];

                    $.each(data, function(index, item){
                        results.push({
                            id: item.ID,
                            text: item.FullName,
                            option_value:item.ID
                        });     
                    });

                    return{
                        results: results,
                        cache: true,
                    };
                },
            }
        });
 function load() {
alert('ok');
//console.log(<?php echo $row['ID']; ?>);

if (<?php echo $row['ID']; ?> != '') {
  $('#requestor').val($row['requestor']);
}
}

window.onload = load;

谢谢你:)

【问题讨论】:

  • 请阅读How to Ask。我们希望您向我们展示您的尝试,并向我们提供清晰的问题描述/提出具体问题。
  • 你检查我的答案吗?成功了吗?

标签: php jquery codeigniter jquery-select2


【解决方案1】:

您的代码非常混乱。像这样更清楚:

<div class="col-md-12">
  <select style="width:100%;" name="requestor[]" id="requestor" class="select2-multiple" multiple></select> 
</div>  

然后:

var $ajax = $("#requestor");

$ajax.select2({
   ajax: {
        url: "<?php echo base_url('Hire_4/select_personnel'); ?>",
        type: "post",
        dataType: 'json',
        delay: 250,
        data: function (params) {
        return{             
           search: params.term
        };
   },
   processResults: function (data, params) {
   params.page = params.page || 1;
   return {
      results: data
   };
   },
   cache: true
   },
   language: "en",
   placeholder: "Requestor Name",
   allowClear: true,
   minimumInputLength: 3,
   maximumSelectionLength: 1,
   escapeMarkup: function (markup) { return markup; },
   templateResult: formatRepo,
   templateSelection: formatRepoSelection
});

function formatRepo(repo) {
   var markup = repo.text ;
   return markup;
}

function formatRepoSelection (repo) {
   return repo.Name.replace(/<\/?("[^"]*"|'[^']*'|[^>])*(>|$)/g, "");
}

您的 Ajax 数据必须采用以下格式:

data[0]['ID'] = 1; //You must have "ID" key
data[0]['Name'] = 'Name'; //You must have "Name" key

这很简单! 祝你好运。

【讨论】:

    猜你喜欢
    • 2018-10-09
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 2015-02-18
    • 2014-07-01
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多