Я пытаюсь использовать библиотеку typeahead.js для создания выпадающего списка, который извлекает данные из базы данных mysql
<div id="the-basics">
<input class="typeahead" type="text" placeholder="States of USA">
<input class="typeahead tt-query" spellcheck="false" autocomplete="off" name="typeahead" type="text" />
</div>
<script>
$(document).ready(function() {
$('input.typeahead').typeahead({
name: 'typeahead',
remote: 'localhost:3000/search?key=%QUERY',
limit: 10
});
});
var substringMatcher = function(strs) {
return function findMatches(q, cb) {
var matches, substringRegex;
// an array that will be populated with substring matches
matches = [];
// regex used to determine if a string contains the substring `q`
substrRegex = new RegExp(q, 'i');
// iterate through the pool of strings and for any string that
// contains the substring `q`, add it to the `matches` array
$.each(strs, function(i, str) {
if (substrRegex.test(str)) {
matches.push(str);
}
});
cb(matches);
};
};
var states = [
'Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California',
'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii',
'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana',
'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota',
'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire',
'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota',
'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island',
'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont',
'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'
];
$('#the-basics .typeahead').typeahead({
hint: true,
highlight: true,
minLength: 1
}, {
name: 'states',
source: substringMatcher(states)
});
</script>
</body>
Я знаю, что моя библиотека typeahead.js
работаетправильно, потому что я получаю выпадающий список для состояний, который извлекает данные из локального массива.Тем не менее, я не получаю никакого выпадения для
На моем server.js
бэкенде у меня есть / search route как
router.get('/search',function(req,res){
pool.query('SELECT userName from users where userName like "%'+req.query.key+'%"',
function(err, rows, fields) {
if (err) throw err;
var data=[];
for(i=0;i<rows.length;i++) {
data.push(rows[i].partName);
}
res.end(JSON.stringify(data));
});
});
Проблема в том, что на моей вкладке Network в консоли Google Chrome, Я не вижу запроса на получение ajax.
Я следовал этому учебнику, чтобы достичь своей цели.