目前,我正在使用一个控制器来获取所有数据,并将其放置在视图类中的foreach语句中。因此,每当加载页面时,它都会执行此函数。为了实现这一点,我使用了如下方法:
控制器类:
$add['sources']= $this->contacts_model->get_array();
查看类别:
<select name="contact_source" id="contact_source" class="form-control select2 <?php echo form_error('contact_source') ? 'red' : '' ?>" required/>
<option value="">Select</option>
<?php foreach($sources as $source): ?>
<option value="<?php echo $source['id']; ?>" <?php echo ($this->input->post('contact_source') == $source['id'])?'selected="selected"':''?>><?php echo $source['title']; ?></option>
<?php endforeach; ?>
</select>
但是现在我希望页面加载得更快,因此只有当用户单击该特定的select2语句时,我才希望加载下拉列表。我尝试了以下代码来获取具有选择2功能的select2变量,即通过下拉列表获取输入文本,但都不起作用。它只是在我的页面加载时打开一个正常的下拉列表。
查看类别:
<select name="contact_source" id="contact_source" class="form-control select2 <?php echo form_error('contact_source') ? 'red' : '' ?>" required/>
<option value="">Select</option>
<?php foreach($sources as $source): ?>
<option value="<?php echo $source['id']; ?>" <?php echo ($this->input->post('contact_source') == $source['id'])?'selected="selected"':''?>><?php echo $source['title']; ?></option>
<?php endforeach; ?>
</select>
$(document).ready(function(){
$('#contact_source').on('click', function(e) {
$("#contact_source").select2({
minimumInputLength: 2,
tags: [],
ajax: {
url: "<?php echo site_url('contacts/add'); ?>/",
dataType: 'json',
type: "GET",
delay : 50,
data: function (data) {
return {
sources: data.sources
};
},
results: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.sources,
id: item.id
}
})
};
}
}
});
})
});
在<代码>
并删除(“#contact\u source”)。在('click',函数(e){
我建议您使用jQuery自动完成。https://jqueryui.com/autocomplete/#remote
问题内容: 我正在使用Select2 JS版本4.0.0-rc.1,并且无法通过远程Ajax方法加载建议。 以下是标记和代码 JavaScript jQuery 服务器返回的Json结果 我完全不确定是否需要编写特定的函数来显示建议,有关Ajax部分的评论指出,我们不应更改结果Json数据。 现在有人请告诉我,让代码正常工作以显示建议还需要做些什么。 我想随着新版本的select2发生了很多变化。
问题内容: 我正在使用select2插件(v4),并使用ajax加载他的选项。 如果我第一次打开选择输入,将加载数据。当我再次打开选择时,将重新加载相同的数据。 有什么方法可以防止这种“重新加载”数据?我的意思是,如果我只是打开select2并且先前已加载选项,则我不想再次加载。 这是我当前的代码: 问题答案: 由于您正在使用select2_v.4,因此必须使用(并且方法在V.4.0中已弃用)以下
问题内容: 我有以下代码(javascript): 对于服务器端,我正在使用ASP MVC4。select使用ajax获取数据并呈现选项,但是该选项是不可选择的。在阅读其他文章时,他们使用id函数进行了描述,但是此函数似乎在我使用的2.4的select2版本上不见了 我在github 上显示的文档中遵循ajax的示例 “加载远程数据” 问题答案: 如果您的ajax响应没有 id 和 text 属性
在此示例中:https://jsfiddle.net/wqd4ebyn/2/: 我正在尝试使用ajax获取远程数据并使用当前选项预加载列表。除非我删除了ajax,否则它不起作用: 我的列表太大了。我想要的是列出一些非常常见的选项,其余的由ajax列出。当前的实现确实允许两者兼而有之,静态选项或动态选项。我需要两者。
问题内容: 我想为我的项目使用select2插件。我遵循了 此 示例,但对我而言不起作用。 JSON输出 : 剧本 : HTML : 这是我使用以下代码测试代码时的结果: Select2:AJAX结果未在响应键中返回数组。 我在哪里弄错了? 问题答案: 从提供的示例链接到所收到的错误消息,您似乎都在使用Select2 4.0。但是,您的代码是为Select2的早期版本编写的。 如果要继续使用Sel
我试图在一个保护语句中调用一个名为“nextPage”的函数,但它说“()”不能转换为“Bool”。要调用此函数,我需要做什么