Использование typeahead в Bootstrap

Я новичок в начальной стадии. Я хочу использовать встроенный файл bootstrap-typeahead.js для своего веб-приложения, чтобы автоматически отображать параметры при вводе пользователем в текстовое поле. Я скачал пример кода, который использует плагин typeahead. Все работает нормально, просто устанавливая данные как статические. Но я хочу, чтобы все данные динамически выбирались из моей базы данных таблицы с именем «payees», как показано ниже:

Таблица: получатели
+ ---------- + -------------- + --------------- +
| payee_id | имя получателя | payee_contact |
+ ---------- + -------------- + --------------- +
| 1 | Джон Смит | 09045544211 |
| 2 | Чен Лу | 09093457851 |
+ ---------- + -------------- + --------------- +

Я хочу отобразить списки payee_name из текстового поля как тип пользователя, используя typahead.
Я следовал некоторым учебникам из сети о том, как извлечь данные из базы данных, используя jquery ajax. На данный момент я пытаюсь отобразить данные из моей базы данных, используя эти два файла с именами autocomplete.php и data.php

и вот мой код, над которым я работал:

autocomplete.php

<input type="text" class="typeahead" data-provide="typeahead" autocomplete="off" />

<script src="js/jquery-1.8.0.min.js" type="text/javascript"></script>`
<script src="js/bootstrap-typeahead.js" type="text/javascript"></script>

<script type="text/javascript">
$(document).ready(function() {
$('input.typeahead').typeahead({
source: function (query, process) {
$.ajax({
url: 'data.php',
type: 'POST',
dataType: 'JSON',
data: 'query=' + query,
success: function(data) {
console.log(data);
process(data);
}
});
}
});
});
</script>

data.php

<?php

$mysqli = new mysqli("localhost", "root", "", "disbursements");

$query = 'SELECT payee_name FROM payees';

if(isset($_POST['query'])){

// Now set the WHERE clause with LIKE query
$query .= ' WHERE payee_name LIKE "%'.$_POST['query'].'%"';
}

$return = array();

if($result = $mysqli->query($query)){
// fetch object array
while($obj = $result->fetch_object()) {
$return[] = $obj->payee_name;
}
// free result set
$result->close();
}

// close connection
$mysqli->close();

$json = json_encode($return);
print_r($json);
?>

Но эти коды не работают, так как кажется, что мой php-скрипт не возвращает никаких данных для отображения в моем текстовом поле. Может ли кто-нибудь помочь мне с тем, что не так с моими кодами? Спасибо

0

Решение

Попробуй это:

$('.typeahead').typeahead({
source: function (query, process) {
return $.get('data.php', { query: query }, function (data) {
return process(data.options);
});
}
});<?php
$mysqli = new mysqli("localhost", "root", "", "disbursements");
$query = 'SELECT payee_name FROM payees';

if (isset($_POST['query'])) {
// Now set the WHERE clause with LIKE query
$query.= ' WHERE payee_name LIKE "%' . $_POST['query'] . '%"';
}

$return = array();

if ($result = $mysqli->query($query)) {
// fetch object array
while ($obj = $result->fetch_object()) {
$return['options'][] = $obj->payee_name;
}
// free result set
$result->close();
}

// close connection
$mysqli->close();
$json = json_encode($return);
echo $json;
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]