我有一个带有文本框的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;
}
}
}
}
所以基本上我的搜索只返回第一个结果,而它应该返回一个完整的列表。先感谢您!
答案 0 :(得分:1)
正如您可以在关于mysql_fetch_array
的页面上看到的那样,您应该在循环中使用它,例如
while ($row = mysql_fetch_array($result)) {
echo $row['country'];
}
现在你只取得第一个结果。