typeahead 发送请求但不显示获取的结果
typeahead sending request but not displaying results fetched
这是我使用并尝试了 4 小时的代码,可以看到一个 ajax 请求带来了 jason 结果,但在输入字段中没有建议它们
$('#user-search').typeahead({
name: 'user-search',
remote: '/search.php?query=%QUERY'
});
var student = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: 'php/search_groups.php',
wildcard: '%QUERY'
}
});
student.initialize();
$('#students').typeahead(null, {
name: 'students',
displayKey: 'value',
source: student,
});
<div class="form-group">
<label for="tags">
Assign To</label>
<input id="students" type="text" class="typeahead form-control" value="" name="students" placeholder="Specify for special students" />
</div>[![enter image description here][1]][1]
您可以尝试这样的操作:
var students = new Bloodhound({
datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name);},
queryTokenizer: Bloodhound.tokenizers.whitespace,
valueKey: 'name',
remote: {
url: 'php/search_groups.php?search=%QUERY',
wildcard: '%QUERY',
filter: function (students) {
// Map the remote source JSON array to a JavaScript object array
return $.map(students.data, function (student) {
return student;
});
}
}
});
student.initialize();
要将 Typeahead 分配给输入,您可以执行以下操作:
$('.add-employment-city').typeahead({
hint: true,
highlight: true,
minLength: 1
},{
name: 'students',
displayKey: 'name',
source:students.ttAdapter(),
});
在 PHP 文件中你应该把这个:
$search = $_GET['search'];
$students = //USE YOUR SQL CODE TO SEARCH
return json_encode(['data'=>$students]);
提示:结果名称用复数(学生),因为你经常会收到很多结果。
这是我使用并尝试了 4 小时的代码,可以看到一个 ajax 请求带来了 jason 结果,但在输入字段中没有建议它们
$('#user-search').typeahead({
name: 'user-search',
remote: '/search.php?query=%QUERY'
});
var student = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: 'php/search_groups.php',
wildcard: '%QUERY'
}
});
student.initialize();
$('#students').typeahead(null, {
name: 'students',
displayKey: 'value',
source: student,
});
<div class="form-group">
<label for="tags">
Assign To</label>
<input id="students" type="text" class="typeahead form-control" value="" name="students" placeholder="Specify for special students" />
</div>[![enter image description here][1]][1]
您可以尝试这样的操作:
var students = new Bloodhound({
datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name);},
queryTokenizer: Bloodhound.tokenizers.whitespace,
valueKey: 'name',
remote: {
url: 'php/search_groups.php?search=%QUERY',
wildcard: '%QUERY',
filter: function (students) {
// Map the remote source JSON array to a JavaScript object array
return $.map(students.data, function (student) {
return student;
});
}
}
});
student.initialize();
要将 Typeahead 分配给输入,您可以执行以下操作:
$('.add-employment-city').typeahead({
hint: true,
highlight: true,
minLength: 1
},{
name: 'students',
displayKey: 'name',
source:students.ttAdapter(),
});
在 PHP 文件中你应该把这个:
$search = $_GET['search'];
$students = //USE YOUR SQL CODE TO SEARCH
return json_encode(['data'=>$students]);
提示:结果名称用复数(学生),因为你经常会收到很多结果。