2015-03-23 3 views
0

Я пытаюсь реализовать ajax pagination для картинок с картинками, но, похоже, я хорошо понимаю это, и я что-то пропустил.
Так что это мой HTMLPHP и AJAX pagination

<div class="row">      
    <div class="loading-div"><img src="ajax-loader.gif" ></div> 
    <div id="results"></div> 
</div> 

и в голове страницы

<script type="text/javascript"> 
$(document).ready(function() { 
$("#results").load("fetch_pages.php"); //load initial records 

$("#results").on("click", ".pagination a", function (e){ 
    e.preventDefault(); 
    $(".loading-div").show(); //show loading element 
    var page = $(this).attr("data-page"); //get page number from link 
    $("#results").load("fetch_pages.php",{"page":page}, function(){ //get content from PHP page 
     $(".loading-div").hide(); //once done, hide loading element 
    }); 

}); 
}); 
</script> 

И РНР часть

if(isset($_POST) && isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
//continue only if $_POST is set and it is a Ajax request 
if(isset($_GET['album_id']) && is_numeric($_GET['album_id'])){ 
     $album_id = $_GET['album_id']; 

include("config.inc.php"); //include config file 
//Get page number from Ajax POST 
if(isset($_POST["page"])){ 
    $page_number = filter_var($_POST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH); //filter number 
    if(!is_numeric($page_number)){die('Invalid page number!');} //incase of invalid page number 
}else{ 
    $page_number = 1; //if there's no page number, set it to 1 
} 

//get total number of records from database for pagination 
$results = $mysqli_conn->query("SELECT COUNT(*) FROM images"); 
$get_total_rows = $results->fetch_row(); //hold total records in variable 
//break records into pages 
$total_pages = ceil($get_total_rows[0]/$item_per_page); 

//get starting position to fetch the records 
$page_position = (($page_number-1) * $item_per_page); 

//SQL query that will fetch group of records depending on starting position and item per page. See SQL LIMIT clause 
$results = $mysqli_conn->query("SELECT * FROM images WHERE image_album = '$album_id' ORDER BY image_id ASC LIMIT $page_position, $item_per_page"); 

//Display records fetched from database. 

while($row = $results->fetch_assoc()) { 
    echo '<div class="col-md-4 col-ms-6"> 
          <div class="g-item"> 
            <img src="../images/gallery/thumb/'.$row['image_name'].'"> 
           <a data-rel="lightbox" class="overlay" href="../images/gallery/thumb/'.$row['image_name'].'"> 
            <span>+</span> 
           </a> 
         </div> <!-- /.g-item --> 
       </div> <!-- /.col-md-4 -->'; 
} 

echo '<div align="center">'; 
echo paginate_function($item_per_page, $page_number, $get_total_rows[0], $total_pages); 
echo '</div>'; 

} 
} else { echo "no items in this album"; } 

То, что я пытаюсь достичь, когда пользователь нажимает на категории (which already is working fine), чтобы загрузить новую страницу с изображениями из этой категории (альбома), а затем несколько превью и разбиение на страницы. Когда я удаляю часть с $ _GET, это работает, но мне нужно получить album_id, чтобы показывать только те изображения. Вот кнопка на главной странице

gallery.php?album_id='.$row['album_id'].' 

Tutorial, что я следую за это from here

Там нет ошибок и нет изображений на странице ..

ответ

0

Ну вы не отправить album_id к вашему сценарий

$("#results").load("fetch_pages.php",{"page":page}, 

Вы добавляете только страницу, в которую должен быть загружен не идентификатор альбома.

Во-вторых, вы отправляете данные через сообщение. $ _GET всегда пуст в почтовых запросах.

+0

Спасибо за ваш ответ. Я точно не понимаю, как отправить album_id. Я имею в виду, что у альбомов есть альбом 'album_id = 1, album_id = 2'. Поэтому, если я нажму на album_id = 1, откроется страница gallery.php, а затем, как передать идентификатор сценарию? – Select

+0

Просто добавьте идентификатор альбома в свой массив данных. Что-то вроде '{" page ": page," album_id ": myalbumid} –

+0

Где должен быть скрипт' js' на первой странице индекса или второй, где будут загружены изображения в 'gallery.php'? Кроме того, я пробовал что-то вроде '{" page ": page", "album_id": album_id} 'и, похоже, не прав, а в' fetch_pages.php' я добавил '$ album_id = $ _POST [' album_id ']; 'поскольку это POST. – Select