JQuery PHP sayfalama dönüştürme?

1 Cevap php

Hey, ben almaya çalışıyorlar this pagination class ben daha ajaxy olmak için kullanıyorum - I sayfa [2] veri yükler gibi sayfa sayısına tıkladığınızda anlam, ama ben olmadan veri yüklemek istiyorum (hiçbir sayfayı yeniden birlikte arka planda HTTP isteği,) farklı bir sayfaya gidiyor.

PHP ve jQuery hem yeni olmak, özellikle bir php sınıfını kullanırken, bu sonuca ulaşmak için nasıl biraz emin değilim.

Bu ana sayfa arada neye benzediğini:

<?php
$categoryId=$_GET['category'];
echo $categoryId;
?>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery_page.js"></script>

<?php
    //Include the PS_Pagination class
    include('ps_pagination.php');
    //Connect to mysql db
    $conn = mysql_connect('localhost', 'root', 'root');
    mysql_select_db('ajax_demo',$conn);
    $sql = "select * from explore where category='$categoryId'";
    //Create a PS_Pagination object
    $pager = new PS_Pagination($conn, $sql, 3, 11, 'param1=value1&param2=value2');
    //The paginate() function returns a mysql
    //result set for the current page
    $rs = $pager->paginate();
    //Loop through the result set

echo "<table width='800px'>";

    while($row = mysql_fetch_assoc($rs)) {            

                echo "<tr>";
                    echo"<td>";
                        echo $row['id'];
                    echo"</td>";

                    echo"<td>";
                        echo $row['site_description'];
                    echo"</td>";

                    echo"<td>";
                        echo $row['site_price'];
                    echo"</td>";
                echo "</tr>";

    }
echo "</table>";

        echo "<ul id='pagination'>";

            echo "<li>";
            //Display the navigation
            echo $pager->renderFullNav();
            echo "</li>";

        echo "</ul>";

?>

<div id="loading" ></div>
<div id="content" ></div>

Ben sınıfının bu kısmı ile bir şeyler yapmak gerekir, yukarıda görüldüğü gibi:

$pager = new PS_Pagination($conn, $sql, 3, 11, 'param1=value1&param2=value2');

Ya da bu:

echo $pager->renderFullNav();

Jquery hakkında hiçbir çok yapmak, ama ben bunu istiyorum başlamak istiyorum sanırım:

$("#pagination li").click(function() {

O zaman belki bir şeyler yüklemek ...

Ben yok yok. Bu konuda herhangi bir yardım büyük olurdu. Teşekkürler.

1 Cevap

Bu sınıfı kullanarak bu konuda gitmek nasıl emin değil Im, o, komut dosyası olarak size ajax arama yapmak biraz zor olurdu verileri almak için, mevcut PS_pagination örneğine erişim olması gerekir gibi görünüyor.

Gerçi sınıf olmadan, çok zor olmaz.

Aslında sayfa başına kayıt sayısının alır verileri ve geçerli sayfa sayısını döndürmek için bir php komut dosyası gerekir. Bu komut, yerine veri döndürme yerine, ben html döndürür. Yani ben o tablo oluşturmak, veritabanından veri almak. Bu i ajax başarısı üzerine tüm yapmanız gereken ben bu komut almak yeni html ile şu anda güçlü olduğunu ne yerini demektir. Bir örnek İşte ..

//Current Page Number 
$page_num = isset($_GET['page_number']) ?  mysql_real_escape_string($_GET['page_number']) : 1;

//Number of records to show on each page 
$num_records = isset($_GET['num_records_pp']) ?  mysql_real_escape_string($_GET['num_records_pp']) : 10;

//Row to start collecting data from 
$start_row = $num_records * ($page_num - 1);

//String to store html to return 
$return_html = '';

//SQL Query 
$sql = mysql_query("SELECT * FROM my_table LIMIT $start_row, $num_records");

//Query success 
if($sql) {      
    //Construct html for table  
    $return_html = "<table width='800px'>";         

    while($row = mysql_fetch_array($sql)    {       

      $return_html .= "<tr>";       
      $return_html .= "<td>" . $row['id'] . "</td>";        
      $return_html .= "<td>" . $row['site_description'] . "</td>";
      $return_html .= "<td>" . $row['site_price'] . "</td>"; 
      $return_html .= "</tr>";

    }       
    $return_html .= "</table>";

//Query Failed 
} else {

    $return_html = "<p class='error'>Error Fetching Data</p>";

}

return $return_html;

Sonra sadece ajax get isteği yapmak ve sayfa numarasını ve istediğiniz satır sayısını geçmek.

$.get("get_data.php", { page_number: 1, num_records_pp: 20 },
   function(data){
     $('div#my_table').html(data);
   });

Yani, bu sorgu Eğer tablo içeren "my_table" bir kimliği ile bir div var assumses, o zaman istediğiniz sadece verilerin yeni bir tablo consistion ile bu yerini alacak.

Bu kod sadece size jist vermek oldu, bu yüzden orada bazı hatalar olabilir, ama yardımcı olur umarım.