我有一个图片库,目前我将结果限制为10。
我正在尝试通过jQuery点击“加载更多结果”按钮, 在数据库中加载接下来的10行(图像)。
目前我使用类query.php进行查询调用,然后在我的index.php中显示foreach循环中的数据。
我在考虑使用查询字符串在点击时将限制更改为10-20行,但在此中发现困难。
任何帮助将不胜感激。
class query.php
public function Query($db_table, $limit) {
$this->db_query = mysql_query("SELECT * FROM $db_table ORDER BY time DESC limit $limit");
while($row = mysql_fetch_array($this->db_query)) {
$rows[] = $row;
}
return $rows;
}
的index.php
$lim = $_GET['limit'];
$Results = $Database->Query('info', $lim);
if(is_array($Results)) {?>
foreach ($Results as $Result) {
//echo results
jquery的
$("#my_container").load("../lib/class.database.php?limit=10,20" );
亲切的问候, 亚当
答案 0 :(得分:6)
这很简单:
$.ajax(
{
url: "get-ajax-images.php",
data: "mode=ajax&start=10&end=20",
success: function() { /* ... */ },
error: function() { /* ... */ }
});
start
和end
<?php
header("Content-type: application/json");
// Please use intval() to avoid SQL injections!!
$start = isset($_GET['start']) ? intval($_GET['start']) : exit('{"error": true}');
$end = isset($_GET['end']) ? intval($_GET['end']) : exit('{"error": true}');
/* valid start and end? */
if ( $start < 0 || $end < 0 )
exit('{"error": true}');
if ( ($end - $start) <= 0 ||
($end - $start) > 15 )
exit('{"error": true}');
/* All right! */
$sql = "SELECT id, imagepath FROM images LIMIT $start, $end";
$result = mysql_query($sql) or exit('{"error": true}');
$data = array();
while ( $row = mysql_fetch_assoc($result) )
{
$data[] = $row;
}
echo json_encode($data);
答案 1 :(得分:0)