【发布时间】:2014-10-10 07:47:08
【问题描述】:
我正在使用 select2 对几种不同类型的数据创建一种元搜索,我试图弄清楚如何:
- 明确设置select选项的值(我需要设置成json字符串)
- 如何从远程数据动态创建选项组
所以我有 select2 调用:
var meta_ajaxUrl = '[[~45]]?search_what=metaSearch';// modx url
$('#metasearch').select2({
placeholder: "Search for anything!",
minimumInputLength: 3,
ajax: {
url: meta_ajaxUrl,
dataType: 'json',
data: function (term, page) {
return {
q2: term
};
},
results: function (data, page) {
console.log(data);
return { results: data };
}
},
formatResult: metaFormatResult,
});
以及我的 php 中返回的数组之一的示例
$options = $this->modx->getCollectionGraph('FundRequest', '{ }', $criteria);
foreach($options as $option){
$push = array(
'id' => array('type' => 'tipa', 'value' => $option->get('id')),
'name' => $option->Client->get('first_name'),
'program' => $option->Program->ProgramName->get('name'),
'location' => $option->Program->Location->get('location'),
'cams' => $option->get('cams'),
'text' => $option->Program->ProgramName->get('name'),
);
}
array_push($output, $push);
// these get serialized and returned
return $this->modx->toJSON($output);
当输出被序列化时,它看起来像:
{"id":{"type":"person","value":77},"name":"Foo Bar","cams":1234567,"text":"Foo Bar"}
所以,当 select2 为选择控件取值时,它会尝试使用 id 作为 value 属性。如果我查看源代码,我会看到如下内容:
不知何故,我需要告诉 select2 id 的值是 '{"type":"person","value":77}' 有谁知道如何做到这一点?
此外,搜索搜索三种不同类型的信息,如果能够将它们分类到选项组中,那就太好了。有谁知道如何在 select2 结果中动态插入选项组?
【问题讨论】:
标签: jquery jquery-select2