我希望用来自MySQL的ajax获取所有数组值。我无法得到所有结果。我只能得到1个结果。
我的JQuery代码是:
$("input.input-search").keyup(function(){
var name = $(this).val();
if(name !='')
{
$.ajax({
type: 'post',
url: 'ajax.php?bol=search',
data: {'name':name},
dataType: 'json',
success: function(val)
{
x = val.length;
for (i = 1; i<=x; i++){
$(".search-result").html(val[i].user+' * '+x);
}
},
error: function(name){
$(".search-result").html("Nəticə yoxdur...");
}
});
}
});
PHP代码是:
case "search":
$name = trim($_POST['name']);
$q = mysql_query("SELECT * FROM `users` WHERE `user` LIKE '%".$name."%' ORDER by id;");
if(mysql_affected_rows() > 0){
while($arr = mysql_fetch_array($q)){
$array[] = $arr;
}
echo json_encode($array);
}
break;
答案 0 :(得分:4)
很简单。每次循环运行时,您都会覆盖元素HTML内容。使用jQuery
find_package(some_ext_lib)
每次循环运行时为所选元素设置新内容的方法。
所以使用
.html("...")
代替。
当然,在您成功的最开始 - 方法用
清空元素.append('...')
答案 1 :(得分:3)
如果您的查询只返回2行,则问题出在您的Javascript for
循环中。当数组索引从0开始时,你从1开始。试试这个:
for (i = 0; i <= x; i++) {...}