Я использую автозаполнение jQuery и хочу иметь отдельный PHP-файл для хранения данных вместо создания переменной (то есть var availableTags = ["Red", "Orange", "Yellow", "Green," Blue"]).
Однако при этом автозаполнение будет постоянно отображать все доступные параметры, а не отфильтровывать то, что вводит пользователь.
Есть идеи?
Javascript:
$(document).ready(function() {
$( ".autocomplete" ).autocomplete({
source: "../../db/autocomplete_list.php"
});
});
autocomplete_list.php
require_once('../includes/connect.php');
$dbh = connect(DB_HOST,DB_USER,DB_PASSWORD,CM_DATABASE);
$colors = '[';
$sth = $dbh->query ("SELECT * FROM constants
WHERE category='Colors'
ORDER BY display");
while ($row = $sth->fetch ()) {
$colors.= '"'.$row[value].'", ';
}
$colors = rtrim($colors, ', ');
$colors .= ']';
print $colors;
выполнение autocomplete_list.php
["Красный", "Оранжевый", "Желтый""," Зеленый, "Синий"]
РЕДАКТИРОВАТЬ:
Обновил мой файл autocomplete_list.php до следующего.Однако, теперь автозаполнение не отображает мои значения.Если я проверяю ответ в FireBug, он правильно показывает результаты, просто кажется, что они не передаются автозаполнению.
require_once('../includes/connect.php');
$dbh = connect(DB_HOST,DB_USER,DB_PASSWORD,CM_DATABASE);
if(isset($_GET['term'])) {
$mysearchString = $_GET['term'];
}
$sth = $dbh->query("SELECT category, value, display FROM constants
WHERE category = 'COLORS' AND value LIKE '$mysearchString%'
ORDER BY display");
while ($row = $sth->fetch ()) {
print $row['display']."\n";
}