Live Ajax Search не печатает все результаты - PullRequest
1 голос
/ 10 ноября 2010

У меня есть HTML-страница с текстовым полем, в которое пользователь вводит страну, а затем AJAX и PHP запрашивают базу данных mysql стран и распечатывают их в DIV ниже. Код работает просто отлично, кроме одной вещи. Если я наберу «А» в текстовом поле, он напечатает только один результат на экране «Афганистан», тогда как он должен печатать каждую страну, начинающуюся с «А». Я полагаю, что ошибка связана с текстом ответа, но как бы я распечатал несколько ответов, или это вообще имеет смысл: P Ниже приведен соответствующий код.

Запрос к базе данных PHP

<?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;
      }
    }
  }
}

Так что в основном мой поиск возвращает только первый результат, тогда как он должен возвращать весь список. Заранее спасибо!

1 Ответ

1 голос
/ 10 ноября 2010

Как вы можете прочитать на странице о mysql_fetch_array, вы должны использовать его в цикле, например,

while ($row = mysql_fetch_array($result)) {
    echo $row['country'];
}

Теперь вы получаете только первый результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...