回头客数量超过预期

returning users count more than expected

我正在从数据库 table 返回行,我正在将其序列化为 json,以便通过调用 ajax 来显示结果。

当我在我的 chrome 控制台中查看结果时,它看起来是正确的,但是当我尝试显示它或进行计数时,它 returns 比预期的要多得多。

$id = $_POST['userId'];
$query = "SELECT * FROM users";    
$result = mysqli_query($connection, $query);
if (!$result) {
    die("Database connection failed");
}
$results = array(); 
foreach($result as $row){
   $user_id = $row['id'];
   $user_username = $row['username'];
   $user_name = $row['name'];       
   $results[] = array('$id'=> $user_id, '$username' => $user_username,'$name' => $user_name);        
}
echo json_encode($results);

前端

 $.ajax({
                type: "POST",
                url: 'deleteUser.php',
                data: {userId: userId},
                success: function (data) {
                    container.Users = data;
                    console.log(container.Users.length);//returns a count of 773
                    console.log(container.Users);
                }
            });

但是,似乎确实返回了正确的 json,但是当我尝试使用下划线模板在我的页面中呈现它时,它 returns 773 行没有显示任何值。

 <table class="table table-bordered">
            <% _.each (container.Users, function(user) {%>
            <tr>
                <td><%= user.$id %></td>
                <td><%= user.$username %></td>
                <td><%= user.$name %></td>
                <td><input type='button' class='btn btn-primary btn-sm' name='delete' value='Delete' data-iddelete=$id id = <%= user.$id %>></td>               
            </tr>
            <% }); %>

        </table

我的代码有什么问题?

我觉得你的 foreach 有点奇怪。它可能无法回答您的问题,但我想建议进行以下编辑:

$results = array(); 
foreach($result as $row){
    $results[] = array(
        'id' => $row['id'],
        'username' => $row['user_username'],
        'name' => $row['name']
    );

    // Or if your query might return double results
    $results[$row['id']] = array(
        'id' => $row['id'],
        'username' => $row['user_username'],
        'name' => $row['name']
    );
}

上例中的第二个选项将用户的id设置为数组键。如果用户id多次返回,会在数组中覆盖。

您的模板

<table class="table table-bordered">
    <% _.each (container.Users, function(user) {%>
    <tr>
        <td><%= user.id %></td>
        <td><%= user.username %></td>
        <td><%= user.name %></td>
        <td><input type='button' class='btn btn-primary btn-sm' name='delete' value='Delete' data-iddelete="<%= user.id %>"></td>
    </tr>
    <% }); %>
</table

Ajax 通话

data: ... 下面添加 dataType: "json" 可能会解决一些问题。