获取从php到ajax的循环数组

时间:2016-02-09 13:14:58

标签: php jquery mysql ajax

我希望用来自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;

2 个答案:

答案 0 :(得分:4)

很简单。每次循环运行时,您都会覆盖元素HTML内容。使用jQuery

find_package(some_ext_lib)

每次循环运行时为所选元素设置新内容的方法。

所以使用

.html("...")

代替。

当然,在您成功的最开始 - 方法用

清空元素
.append('...')

答案 1 :(得分:3)

如果您的查询只返回2行,则问题出在您的Javascript for循环中。当数组索引从0开始时,你从1开始。试试这个:

for (i = 0; i <= x; i++) {...}