如何通过下一个和上一个按钮逐个显示搜索到的json记录?

时间:2013-08-03 10:18:02

标签: php javascript jquery json

我有一个工作代码,用于搜索json记录并逐个显示所有记录。我想根据搜索词显示记录

工作代码如下:

    <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery PHP Json Response</title>
<style type="text/css">
div
{
text-align:center;
padding:10px;
}

#msg {
width: 500px;
margin: 0px auto;
}
.members {
width: 500px ;
background-color: beige;
}
</style>
</head>
<body>

<input type="text" id="search-json-input" />
<input type="button" id="search-json-submit" value="search" />
<br/>
<br/>

<input type="button" name="next" id="next" value="NEXT" />
<br/>
<input type="button" name="previous" id="previous" value="PREV" />
<br/>
<div id="msg">
    <table id="userdata" border="1">
        <thead>
            <th>Email</th>
            <th>Sex</th>
            <th>Location</th>
            <th>Picture</th>
            <th>audio</th>
            <th>video</th>
        </thead>
        <tbody></tbody>
    </table>
</div>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<script type="text/javascript">

var users = [];
var idx = 0;
var renderRow = function (idx) {
    if (idx < 0) idx = 0;
    if (idx > (users.length - 1)) idx = (users.length - 1);
    var user = users[idx];
    var tblRow = "<tr>" + "<td>" + user.email + "</td>" + "<td>" + user.sex + "</td>" + "<td>" + user.location + "</td>" + "<td>" + "<img src=" + user.image + ">" + "</td>" + "<td>" + "<audio src=" + user.video + " controls>" + "</td>" + "<td>" + "<video src=" + user.video + " controls>" + "</td>" + "</tr>";
    $('#userdata tbody').html(tblRow);
};
var url = "json.php";
$.getJSON(url, function (data) {
    users = data.members;
    renderRow(idx);
    $('#next').click(function() {
        idx++;
        renderRow(idx);
    });
    $('#previous').click(function() {
        idx--;
        renderRow(idx);
    });
});

</script>
</body>
</html>

json.php的结果可以在这里看到:http://sco7.com/components/phonegap/json.php

1 个答案:

答案 0 :(得分:0)

  • 将JSON响应作为变量附加到某个东西,以便稍后引用。
    • 警告如果您有> 1000项此方法效果不佳,因为它太慢而无法返回较大的数据集。
  • 创建当前索引变量(int)。
  • 删除响应处理程序中的循环(即对each()的调用)
  • 更新您的文档,使其具有“左键”和“右键”以及第0项
    • 按钮不得向服务器提交任何内容。
    • 附加的项目可能与您目前的格式相同
  • 创建的按钮有一个onclick处理程序:

    • 重复直到有效更改索引

      • 对于left,如果递减则确认索引是否有效,然后递减它。
      • 右起,如果递增,则确认索引是否有效,然后递增。
      • 您的数据验证(正则表达式)是否为最新。
      • 如果不正确的数据再次更改索引。
    • 删除当前显示的项目文本,并将项目附加到更新的索引处。