实时Ajax搜索不打印所有结果

时间:2010-11-10 11:27:58

标签: php javascript mysql ajax

我有一个带有文本框的HTML页面,用户可以在其中键入国家/地区,然后AJAX和PHP将查询国家的mysql数据库并在下面的DIV中打印它们。除了一件事之外,代码工作正常。如果我在文本框中输入“A”,它只会在屏幕上打印一个结果“阿富汗”,而应该打印每个以“A”开头的国家/地区。我想错误在于响应文本,但是如何打印出多个响应,或者甚至是否有意义: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 个答案:

答案 0 :(得分:1)

正如您可以在关于mysql_fetch_array的页面上看到的那样,您应该在循环中使用它,例如

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

现在你只取得第一个结果。

相关问题