0

我的主要目标是创建一个带有照片缩略图的分页。我已经成功地创建了自己的分页。但问题是,我知道如何使用 ajax,只是不知道如何将 ajax 应用到它上面,这样它对用户更友好。有人可以帮助我吗,我一直在努力寻找这个问题的答案。下面是我的代码。

<?php
  require 'php/connect.inc.php';
  $per_page = 3;

  $pages_query = mysql_query("SELECT COUNT('id') FROM my_list");
  $pages = ceil(mysql_result($pages_query, 0) / $per_page);

  $page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
  $start = ($page - 1) * $per_page;


  $query = mysql_query("SELECT id, image_small FROM my_list LIMIT $start, $per_page");
  while($mysql_fetch_assoc = mysql_fetch_assoc($query)){
    echo "<img src=".'img/uploads/'.$mysql_fetch_assoc['image_small'].">";
  }

  if ($pages >= 1 && $page <= $pages){
    for ($x=1; $x <= $pages; $x++){
      echo ($x == $page) ? '<strong><a href="?page='.$x.'">'.$x.'</a></strong> ' : '<a href="?page='.$x.'">'.$x.'</a>';
    }
  }
?>
4

1 回答 1

0

当您构建应用程序 json 时,您需要两件事,首先是一个返回适当响应的脚本,另一个是发出请求的客户端。

这是一个返回的脚本示例json

<?php
  require 'php/connect.inc.php';
  $per_page = 3;

  $pages_query = mysql_query("SELECT COUNT('id') FROM my_list");
  $pages = ceil(mysql_result($pages_query, 0) / $per_page);

  $page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
  $start = ($page - 1) * $per_page;


  $query = mysql_query("SELECT id, image_small FROM my_list LIMIT $start, $per_page");

  $results = array();
  while($mysql_fetch_assoc = mysql_fetch_assoc($query)){    
    $results[] = $mysql_fetch_assoc['image_small'];
  }      

  header('Content-type: application/json');

  echo json_encode(array(
    'thumbs' => $results,
    'pages' => $pages,
    'current_page' => $page,
    'per_page' => $per_page
  ));

?>

这是一个用于发出请求的简单客户端脚本(使用jQuery的javascript )

$.ajax({
  url: "yourscript.php?page=1"
}).done(function(data) {
  $.each(data.thumbs, function(thumb) {
    // to something
  });
});

最后建议大家不要mysql_query和他的同伙一起使用。不推荐阅读php.net/mysql_query

于 2013-04-13T05:40:53.920 回答