0

ねえ、クリックするとmysqlデータベースからデータを取得し、ページネーションで表示するボタンを追加しようとしています。しかし、私はそれを適切に機能させることができないようです。

最初のメイン ページは次のようになります。

<?php
include('config.php');
$per_page = 3;

//Calculating no of pages
$sql = "select * from explore";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
$pages = ceil($count/$per_page)
?>

<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_pagination.js"></script>

<style>
body { margin: 0; padding: 5; font-family:Verdana; font-size:10px }
a
{
text-decoration:none;
color:#B2b2b2;

}

a:hover
{

color:#DF3D82;
text-decoration:underline;

}
#loading { 
width: 100%; 
position: absolute;
}

#pagination
{
text-align:center;
margin-left:120px;

}
li{ 
list-style: none; 
float: left; 
margin-right: 16px; 
padding:5px; 
border:solid 1px #dddddd;
color:#0063DC; 
}
li:hover
{ 
color:#FF0084; 
cursor: pointer; 
}
td{
border:solid 1px #dddddd;
padding:5px;
}


</style>



<div id="loading" ></div>
<div id="content" ></div>
<ul id="pagination">
<?php
//Pagination Numbers
for($i=1; $i<=$pages; $i++)
{
echo '<li class="page_numbers" id="'.$i.'">'.$i.'</li>';
}
?>

<p id="marketing">MARKETING</p>
</ul>
<br />
<br />

ご覧のとおり、そのページの上のボタンは次のようになります。

<p id="marketing">MARKETING</p>

したがって、ユーザーがこれをクリックすると、データベースから結果を取得する必要があります。

私は次のようにjqueryでこれを行います:

$(document).ready(function(){

    //Display Loading Image
    function Display_Load()
    {
        $("#loading").fadeIn(900,0);
        $("#loading").html("<img src='bigLoader.gif' />");
    }
    //Hide Loading Image
    function Hide_Load()
    {
        $("#loading").fadeOut('slow');
    };


   //Default Starting Page Results

    $("#pagination li:first").css({'color' : '#FF0084'}).css({'border' : 'none'});

    Display_Load();

    $("#content").load("pagination_data.php?page=1", Hide_Load());



    //Pagination Click
    $("#pagination li").click(function(){

        Display_Load();

        //CSS Styles
        $("#pagination li")
        .css({'border' : 'solid #dddddd 1px'})
        .css({'color' : '#0063DC'});

        $(this)
        .css({'color' : '#FF0084'})
        .css({'border' : 'none'});

        //Loading Data
        var pageNum = this.id;

        $("#content").load("pagination_data.php?page=" + pageNum, Hide_Load());

    });


// Editing below.        
        // Sort content Marketing    
        $("#pagination p").click(function () {


        Display_Load();

        //CSS Styles
        $("#pagination li")
        .css({'border' : 'solid #dddddd 1px'})
        .css({'color' : '#0063DC'});

        $(this)
        .css({'color' : '#FF0084'})
        .css({'border' : 'none'});

        //Loading Data
        var pageNum = this.id;

        $("#content").load("filter_marketing.php?page=" + pageNum, Hide_Load());
        });

});

問題は、1 つの主な理由で機能しないことです。1. PageNum = マーケティング。上記の「pagination li」のような数字にする必要があります。私はそれを正しく修正する方法がわかりません。

私があなたを混乱させている場合に備えて、私はよりよく説明しようとします:

クリックするとデータベースからデータを取得して表示するボタン (マーケティングなど) を作成したいのですが、新しいデータを補うためにページ番号を「更新」する必要もあります。

さらに説明が必要な場合は、お知らせください。どんな助けでも大歓迎です。ありがとうございました。

4

1 に答える 1

0

あなたが探しているかもしれないと思いますindex()

 var pageNum = $(this).index() + 1;

インデックスは 0 ベースであるため、1 を追加することに注意してください。

これは、index が次を返すため、html マークアップにも依存します。

兄弟要素に対する jQuery オブジェクト内の最初の要素の位置を示す整数。

編集:

したがって、#content のコンテンツを更新するときに data-page 属性も変更すると、#marketing をクリックしたときにその情報も表示されるため、取得するページがわかります。

これは、LI 要素の 1 つに「current-page」クラスを指定してから、.current-class LI の ID を取得する場合にも機能します。

<div id="content" data-page="1"></div>

J:

//Pagination Click
$("#pagination li").click(function(){
    //...
    $("#content").load("pagination_data.php?page=" + pageNum, function(){
          Hide_Load();
          $(this).attr('data-page', pageNum);
    });
});


$("#pagination p").click(function () {
    //...
    var pageNum = $('#content').attr('data-page');

    $("#content").load("filter_marketing.php?page=" + pageNum, Hide_Load());
 });
于 2010-02-09T18:58:12.530 に答える