0

嘿,我正在尝试添加一个按钮,单击该按钮将从 mysql 数据库中获取数据并以分页方式显示。但是,我似乎无法让它正常工作。

第一个主页如下所示:pagination.php:

<?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. PageNum = 营销。我需要它是上面的“分页 li”这样的数字。我不知道如何正确修复它。

如果我让您感到困惑,我将尝试更好地解释:

我想创建一个按钮(即营销),单击该按钮将从数据库中获取数据并显示,但我还需要“刷新”分页编号以补偿新数据。

如果您需要进一步的解释,请告诉我。任何帮助将不胜感激。谢谢你。

4

1 回答 1

0

认为您可能正在寻找index().

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

请记住,索引是基于 0 的,因此添加 1。

这也取决于您的 html 标记,因为 index 返回:

一个整数,指示 jQuery 对象中第一个元素相对于其兄弟元素的位置。

编辑:

因此,如果在更新#content 的内容时,您还更改了data-page 属性,那么您在单击#marketing 时也可以获得该信息,因此您知道要获取哪个页面。

如果您要为其中一个 LI 元素提供“当前页面”类,然后获取 .current-class LI 的 id,这也将起作用。

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

JS:

//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 回答