嘿,我返回 ajax 的 php 代码仅返回一行,欢迎任何帮助。 PHP
<?php
include "db.php";
$letter=$_POST["letter"];
$qry = "SELECT * FROM book WHERE title like '$letter%'";
$res = mysql_query($qry);
$num_row = mysql_num_rows($res);
$row = mysql_fetch_assoc($res);
if($num_row>0){
while($row=mysql_fetch_array($res)){
echo "<tr><td>$row[title]</td><td><a href=$row[author]>$row[author]</a></td><td>$row[year]</td></tr></li>";
}
}else{
echo "No Books Found Begining with the letter $letter";
}
?>
Ajax/javaScript
$(document).ready(function () {
$("#button").click(function(){
var letter=$("#letteroption").val();
alert(letter);
console.log(letter);
$.ajax({
type:"post",
url:"azlistscript.php",
data:"letter="+letter,
success:function(data){
//var bookdata.html(data);
$("#bookdata").append(data);
$("#search").val("");
}
});
});
});
HTML
<table id="bookdata">
<thead>
<th class="tbl_left_column">Title</th>
<th class="tbl_left_column">Author</th>
<th class="tbl_left_column">Year</th>
</thead>
</table>
数据显示正确,但当数据库中有以字母 H 开头的 my 时,它不会在数据库中显示多于一行。所有愚蠢的错误都会被注意到,谢谢。
最佳答案
您正在获取两次。
删除 if 语句之前的该行。
$row = mysql_fetch_assoc($res);
使用这个:
echo "<tr><td>".$row['title']."</td>
<td><a href='".$row['author']."'>". $row['author']."</a></td>
<td>".$row['year']."</td>
</tr>";
编辑:
if(mysql_num_rows($res) == 0)
{
echo "No Books Found Begining with the letter $letter";
}
else{
while($row=mysql_fetch_array($res)){
.......
......
}
EDIT2:我想我理解你了。那么你需要只比较第一个字母而不是 LIKE :
试试这个:
$qry = "SELECT * FROM book WHERE LEFT(title, 1) = '$letter'";
关于javascript - PHP 只显示一行原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22327965/