У меня проблемы с завершением функции автозаполнения в Jquery с данными из базы данных. Всякий раз, когда я что-то печатаю, я всегда получаю сообщение «ничего не найдено». Я хочу, чтобы он отображал название страны, когда пользователь печатает.
jquery.php
<?php
require "database/database.php";
session_start();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<link type="text/css" rel="stylesheet" href="CSS/style.css">
<script type="text/javascript" src="jquery/jquery-1.11.3.min.js"></script>
<script src="jquery/jquery-ui.min.js"></script>
</head>
<body>
<form action="" method="post">
<p><label>Country:</label><input type='text' name='country' value='' class='auto'></p>
</form>
<script type="text/javascript">
$(document).ready(function () {
$('.auto').autocomplete({
source:"suggested.php",
MinLength: 2
});
});
</script>
</body>
</html>
Это моя предлагаемая страница .php:
<?php
require "database/database.php";
$term = trim(strip_tags($_GET['term']));
$data = mysql_query("SELECT * FROM countries WHERE countryname LIKE '%".$term."%'");
while($row = mysql_fetch_assoc($data)) {
$data[] = array(
'label' = $row['countryname'],
'value' = $row['countryname']
);
}
echo json_encode($data);
flush();
}
?>
В базе данных у меня есть таблица названных стран и внутри нее countryid, countryname и countryflag. Мне нужно извлечь только столбец с названием страны.
Я пытался использовать $ _GET [‘term’] и $ _REQUEST [‘term’].
Я пробовал разные уроки, но ни один из них не работает.
Если у вас есть предложения, пожалуйста, скажите мне.
Спасибо
Это будет задерживать ваше выполнение, если вы будете выполнять запрос каждый раз, когда вы печатаете, потому что вы можете ввести значение в качестве значения условия запроса!
I can give you some I tested logic is run your query first when document is loaded and store as a json data type,then you can set source data in autocomplete
Это может сократить время отклика вашей страницы при выполнении SQL-запроса
<form action="" method="post">
<p><label>Country:</label><input type='text' name='country' value='' class='auto'></p>
</form>
<script type="text/javascript">
$(document).ready(function () {
var source = [];
$.ajax({
url : "suggested.php",
data : "GET",
dataType : "json",
success : function(data){
for(var i in data){
source.push(data[i]);
}
}
});
$('.auto').autocomplete({
source: source,
MinLength: 2
});
});
</script>
suggested.php
<?php
require "database/database.php";
$data = mysql_query("SELECT * FROM countries");
$result = array();
while($row = mysql_fetch_assoc($data)) {
$result[] = array(
'label' = $row['countryname'],
'value' = $row['countryname']
);
}
echo json_encode($result);
flush();
}
?>
Других решений пока нет …