Я использую typeahed для извлечения данных в реальном времени с помощью ajax, но возвращенный результат не отображается в текстовом поле.
EJS-код:
<div class="container">
<div class="row">
<div class="col-md-8">
<label for="search">Contact Search</label>
<input class="typeahead tt-query" spellcheck="false" autocomplete="off" name="typeahead"
type="text" />
</div>
</div>
</div>
AJAX-код:
<script>
$(document).ready(function () {
$('input.typeahead').typeahead({
name: 'typeahead',
remote: 'http://localhost:3000/search?key=%QUERY',
limit: 10
});
})
</script>
КОД УЗЛА:
app.get('/search', function (req, res) {
var fetchSql = 'SELECT company from leads where company like "%' + req.query.key + '%"'
dbConfig.varConnection[dbName].query(fetchSql, function (err, rows, fields) {
if (err) throw err;
var data = [];
for (i = 0; i < rows.length; i++) {
data.push(rows[i].company);
}
res.end(JSON.stringify(data));
})
});
Если я нажимаю на этот звонок из браузера или почтальона, я получаю отличный массив.
URL: 'http://localhost:3000/search?key=com'
РЕЗУЛЬТАТ: ["Violet Company","No Company","Latest Company","Today Company","Company","comapny","Company is not herer"]
Вышеуказанный результат должен отображаться в текстовом поле typeahead.
Я пошел по этому пути: https://codeforgeek.com/ajax-search-box-using-node-mysql/