【问题标题】:How to add filters to this pagination script properly?如何正确添加过滤器到这个分页脚本?
【发布时间】:2011-01-14 14:47:01
【问题描述】:

我目前正在处理this tutorial,并想为其添加一个过滤器按钮。

我正在使用 jquery 使元素可点击:

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

和元素的jquery:

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

        Display_Load();

        //Loading Data
        var pageNum = this.id;    

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

});

我遇到的问题是,当单击段落标签时,会转到“filter_marketing.php?page=”,但由于未定义“var pageNum”,因此无法工作(即不显示任何内容)。

pageNum 的 php 代码如下所示:

<?php
//Pagination Numbers
for($i=1; $i<=$pages; $i++)
{
echo '<li id="'.$i.'">'.$i.'</li>';
}
?>

我只是不确定如何制作一个“营销”按钮并单击它会进入 php 页面并在 mysql db 中获取结果并使用分页显示。

如果有人能在这方面提供帮助,那就太好了。

附:检查教程的整个脚本以查看整个结构及其工作原理。 Tutorial

编辑:这是代码:

分页.php:

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

//Calculating no of pages
$sql = "select * from explore where category='marketing'";
$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 id="'.$i.'">'.$i.'</li>';
}
?>
<p id="marketing">MARKETING</p>
</ul>
<br />
<br />

jquery_pagination.js

$(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();

                //Loading Data
        var pageNum = this.id;    

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

        });

});

filter_marketing.php:

<?php
include('config.php');
$per_page = 3;
if($_GET)
{
$page=$_GET['page'];
}

$start = ($page-1)*$per_page;
$sql = "select * from explore where category='marketing' order by category limit $start,$per_page";
$result = mysql_query($sql);
?>
<table width="800px">
<?php
while($row = mysql_fetch_array($result))
{
$msg_id=$row['id'];
$message=$row['site_description'];
$site_price=$row['site_price'];

?>
<tr>
<td><?php echo $msg_id; ?></td>
<td><?php echo $message; ?></td>
<td><?php echo $site_price; ?></td>
</tr>
<?php
}
?>
</table>
<?php
//Pagination Numbers
for($mktg=1; $mktg<=$pages; $mktg++)
{
echo '<li class="mktg" id="'.$mktg.'">'.$mktg.'</li>';
}

【问题讨论】:

    标签: php jquery mysql pagination


    【解决方案1】:

    我遇到的问题是 点击段落标签会去 到 'filter_marketing.php?page=' 但是 将不起作用(即不显示任何内容) 因为'var pageNum'不是 已定义。

    当我尝试example page 时,我得到了正确的页码,如 Firebug 的网络面板所示。我看到的奇怪的事情是结果 10-12 没有显示,即第 1 页有结果 1-9,第 2 页显示结果 13-23(你真的应该每页显示 10 或 20 个结果)。

    我只是不确定如何制作按钮 '营销'并点击它去 php页面并获取结果 mysql db 并用 分页。

    your source code 中的“营销”在哪里?你能举个例子吗?我只是不明白这个问题。

    编辑:我还是不明白。 #marketing 尚未分配 onclick 事件。此外,我会使用 之类的表单中的按钮,并在您的 JavaScript 中将 onclick 事件附加到它。该函数可以通过 AJAX 调用您的 PHP 或转到不同的 URL,成功时返回 false 以防止默认操作(或者只是让按钮以常规方式提交您的表单)。

    【讨论】:

      猜你喜欢
      • 2018-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 2016-12-17
      • 2022-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多