У меня есть HTML-страница с текстовым полем, в котором пользователь вводит страну, а затем AJAX и PHP будут запрашивать базу данных mysql из стран и печатать их в DIV ниже. Код работает отлично, кроме одного. Если я наберу «A» в текстовом поле, он напечатает только один результат на экране «Афганистан», тогда как он должен печатать каждую страну, начиная с «A». Я предполагаю, что ошибка связана с текстом ответа, но как я могу распечатать несколько ответов, или это даже имеет смысл: P Ниже приведен соответствующий код.Live Ajax Search не распечатывать все результаты
РНР запрос к базе данных
<?php
$country=$_REQUEST['country']; //get the country sent by Ajax
$connection = mysql_connect("localhost","MYUSERNAME","MYPASSWORD");
mysql_select_db("countrydb", $connection);
$result=mysql_query("SELECT * FROM countries WHERE country LIKE '%$country%'",$connection);
if($row = mysql_fetch_array($result))
echo $row['country'];
else
echo "noresults";
mysql_close($connection);
?>
Это отношение Javascript
function showcountryStatus() {
if (request.readyState == 4) {
if (request.status == 200) {
if (request.responseText == "noresults") {
document.getElementById('results').innerHTML="No Results";
} else {
document.getElementById('results').innerHTML=request.responseText;
}
}
}
}
Так в основном мой поиск возвращается только первый результат, в то время как он должен возвращать весь список. Заранее спасибо!
Вы не должны просто «отгонять» все результаты один за другим. Рассмотрите возможность добавления результатов в массив, а затем с помощью 'json_encode'. Конечно, вам также придется адаптировать сторону JavaScript. [1]: http://www.php.net/manual/en/function.json-encode.php – Zecc