我正在使用Select2 3.5.1。使用此插件,我可以成功加载远程数据。但是,我今天在这里问一个问题,以改善这一搜索条件。这是逐步了解我想做的事情:
当我们再次单击搜索框时,是否有可能重新出现以前搜索的结果列表而没有任何ajax调用?然后,如果用户删除了一个字符或更改了他的搜索标准,它将再次触发ajax搜索。
如果可能,我们将如何编码?
希望我的问题很清楚,如果您有任何疑问,请告诉我。谢谢。
这是一个非常简单的代码,我们在其中进行搜索以返回结果列表。它并不会真正搜索,但是在您键入内容时会返回一个列表。我不确定如何使用响应之一中提到的initSelection。
<html>
<head>
<title>
Test page for ajax cache
</title>
<script type='text/javascript' src='../../resources/javascript/jquery/jquery-1.9.1.min.js'></script>
<link type='text/css' href='../../resources/javascript/select2/select2.css' rel='stylesheet' />
<script type='text/javascript' src='../../resources/javascript/select2/select2.js'></script>
<script>
$(document).ready(function(){
$('#select').select2({
ajax: {
type: 'POST',
url: 'ajax.php',
dataType: 'json',
data: function(term, page){
return {
autoc: 'country',
term: term
}
},
results: function(data, page){
console.log(data);
return( {results: data.results} );
}
},
placeholder: 'Search something',
minimumInputLength: 3,
width: '333'
});
});
</script>
</head>
<body>
<input type='text' name='inputdata' id='select' />
</body>
</html>
非常简单的ajax.php称为:
<?php
$results2['more'] = false;
$results2['results'][0] = array('id'=> "1", 'text'=> "California");
$results2['results'][1] = array('id'=> "2", 'text'=> "Canada");
$results2['results'][2] = array('id'=> "2", 'text'=> "Someword");
$results2['results'][3] = array('id'=> "2", 'text'=> "Alberta");
$results2['results'][4] = array('id'=> "2", 'text'=> "New York");
echo json_encode($results2);
我确实再次阅读了您的帖子。我上次误会了你。
解决方案在这里。
$(document).ready(function () {
$('#select').select2({
// this part is responsible for data caching
dataCache: [],
query: function (q) {
var obj = this,
key = q.term,
dataCache = obj.dataCache[key];
//checking is result in cache
if (dataCache) {
q.callback({results: dataCache.results});
} else {
$.ajax({
url: 'ajax.php',
data: {q: q.term},
dataType: 'json',
type: 'POST',
success: function (data) {
//copy data to 'cache'
obj.dataCache[key] = data;
q.callback({results: data.results});
}
})
}
},
placeholder: 'Search something',
width: '333',
minimumInputLength: 3,
});
// this part is responsible for setting last search when select2 is opening
var last_search = '';
$('#select').on('select2-open', function () {
if (last_search) {
$('.select2-search').find('input').val(last_search).trigger('paste');
}
});
$('#select').on('select2-loaded', function () {
last_search = $('.select2-search').find('input').val();
});
});
问题内容: 我在我的搜索框中使用了select2。我从URL获取结果,但是无法从中选择一个选项。我想使用“ product.productName”作为选择后要显示的文本。有什么我错过的东西或我犯的任何错误。我包括了select2.css和select2.min.js,jquery.js 这是我的resut_object 问题答案: 您缺少结果数据的id属性。如果没有,则使选项“不可选择”。 例:
问题内容: 应用程序如何执行邻近搜索?例如,用户输入邮政编码,然后应用程序按距离排序列出20英里内的所有企业。 我想在PHP和MySQL中构建类似的东西。这种方法正确吗? 获取我感兴趣的位置的地址并将其存储在数据库中 使用Google的地理编码服务对所有地址进行地理编码 编写包含Haversine公式的数据库查询以进行邻近搜索和排序 这个可以吗?在第3步中,我将计算每个查询的接近度。有一个PROX
本文向大家介绍solr 邻近搜索,包括了solr 邻近搜索的使用技巧和注意事项,需要的朋友参考一下 示例 name:"john doe"~1 搜索特定术语距离(〜1)内的多个术语,i.e将查找包含john匿名doe而不包含john第二名doe的文本
Google AJAX 搜索 API 可让您通过 JavaScript 将 Google 搜索放在网页中。您可以嵌入一个简易的动态搜索框,并可以在自己的网页上显示搜索结果,或者以创新的编程方式使用这些结果。 主要用途: 1. 将 Google 网页搜索、资讯搜索和博客搜索集成到您的网站中。 2. 将本地搜索结果添加到您的网站中,或者使用 Google 地图 API 混搭集成这些结果。 3. 将 Y
我已经在我的windows计算机上安装了logstash和elasticSearch,配置如下(根据配置,它在1分钟内轮询客户表中的记录) #1 Logstash配置文件加载客户表数据并将其索引为Logstash-config.conf #2用数据库创建包含一些记录的表 #4点击get API 4.1:不返回任何记录http://localhost:9200/customer_index/_sea
我在谷歌的数据存储中存储了很多包含地质点的实体。现在,我需要根据发送到谷歌云功能的位置获取10个最近的位置 我看到,谷歌的应用程序引擎中有一个distance()函数,但在谷歌云函数中没有可比性,甚至无法计算数据库中的任何内容。 是否可以仅使用谷歌云功能从数据存储中获取最近的10个位置,或者我需要使用不同的数据库? 最好的问候, 帕斯卡