带有预加载数据的jQuery Select2 Ajax

时间:2014-06-04 18:58:19

标签: javascript php jquery ajax jquery-select2

我正在使用jQuery插件Select 2。通过我正在使用的设置,我允许"多个"从链接到我的员工数据库的Ajax响应中进行选择。基本上允许我选择多个员工。然后,我可以保存数据并循环选项并将其存储到数据库中。

我面临的问题是我现在回到这个页面"编辑"信息,我预先加载了我之前选择的用户,但也需要能够支持AJAX搜索其他员工。

有没有人做过这样的事情或知道可能的解决方法?

//Build preset carpool members
    <?php $counter = 1; foreach($fetchData->data as $data){ ?>

        var preload_data<?php echo $counter;?> = [

            <?php foreach($data->carpool->employees as $dataCP){ 
                $result .= "{ id: '".$dataCP->empID."', text: '".$dataCP->LastName.", ".$dataCP->FirstName."'},";
            } 
            echo rtrim($result, ',');
            ?>

            ];

         $('#carpool<?php echo $counter; ?>').select2({
                multiple: true,
                query: function (query){
                    var data = {results: []};

                    $.each(preload_data<?php echo $counter; ?>, function(){
                        if(query.term.length == 0 || this.text.toUpperCase().indexOf(query.term.toUpperCase()) >= 0 ){
                            data.results.push({id: this.id, text: this.text });
                        }
                    });

                    query.callback(data);
                },
                ajax: { 
                    url: "jsonUser.php",
                    dataType: 'json',
                    data: function (term) {
                        return {
                            term: term, // search term
                        };
                    },
                    results: function (data) { // parse the results into the format expected by Select2.
                        return {results: data};
                    }
                },
            });

        $('#carpool<?php echo $counter; ?>').select2('data', preload_data<?php echo $counter; ?> )




    <?php $counter++; } ?>

上面的代码预装了多个select2字段,员工姓名很好。但是,当显然有预加载数据时,它不允许ajax部分工作。

试着看看我是否遗漏了这件事?

0 个答案:

没有答案