我正在制作一个简单的项目拣选系统,在该系统中,用户将使用一个按钮来显示一个项目,然后按下该按钮,然后将其按下并在下一行中显示下一个项目。
当前,当按下按钮时,它将显示第一项,然后再次按下将显示第一项以及第二项,然后显示第三项,依此类推。
一个例子是:
第一次按下:item1
第二次按下:item1,item2
我需要弄清楚如何在通过表格时一次仅显示一项。任何帮助,将不胜感激,谢谢。这是我的按钮:
<script>
var offset = 0;
$(document).ready(function () {
$('#button1').click(function (e) {
$("#div1").empty();
// pass offset value with GET request
$.getJSON("getItem.php?offset=" + offset, function(result){
offset++; // increment the value after sucessful AJAX call
$.each(result, function(i, field){
$("#div1").empty();
$("#div1").append(JSON.stringify(result));
});
});
});
});
</script>
这是我的getitem.php
mysqli_select_db($con,"items");
$rows = null;
// Get the offset value
$offset = empty($_GET['offset']) ? 0 : $_GET['offset'];
$sql="SELECT * FROM items Limit 1, $offset "; // pass the offset value to LIMIT query
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_assoc($result))
$rows[] = array_map('utf8_encode', $row);
echo json_encode($rows);
答案 0 :(得分:1)
问题出在查询的LIMIT部分。您放置“ 1”的第一部分实际上是偏移量,而获得$ offset的第二部分实际上是计数值。
可能应该是这样的:
$sql="SELECT * FROM items LIMIT $offset, 1";
答案 1 :(得分:0)
您可以第一次从数据库中选择所有项目并将其存储到数组中。每次用户单击按钮时,都可以使用偏移量从该数组中选择项目。
通过这种方式,您避免为每个对象/单击都发出新的http请求。 除非您有无限数量的对象和/或对象尺寸很大。