我目前正在处理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 数据库中获取结果并使用分页显示它。
如果有人可以提供帮助,那就太好了。
附注检查本教程的整个脚本以了解整个结构及其工作原理。 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>';
}
最佳答案
The problem that I am getting is when clicking on the paragraph tag will go to 'filter_marketing.php?page=' but will not work (i.e. displays nothing) since the 'var pageNum' is not defined.
尝试 example page 时我只是得到了正确的页码,如 Firebug 的网络面板所示。我看到的奇怪的事情是,结果 10-12 没有显示,即第 1 页显示结果 1-9,第 2 页显示结果 13-23(您实际上应该使其每页显示 10 或 20 个结果)。
Im just unsure how to make a button 'marketing' and clicking on it goes to the php page and gets the results in mysql db and displays it with the pagination.
your source code中的“营销”在哪里?您能举个例子吗?我就是不明白这个问题。
编辑:我仍然不明白这一点。 #marketing 尚未分配 onclick 事件。此外,我会使用类似 <input type="submit"> 的形式的按钮,并在 JavaScript 中附加 onclick-event。该函数可以通过 AJAX 调用您的 PHP 或转到不同的 URL,成功时返回 false
以阻止默认操作(或者只是让按钮以常规方式提交表单)。
关于php - 如何正确地将过滤器添加到该分页脚本中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2225885/