[英]pagination using javascript in php and mysql
我正在尝试使用 javascript 进行分页,但都是徒劳的,请帮助..
<script language="Javascript">
function nextclicked()
{
document.getElementById("clickednext").value = document.getElementById("clickednext").value + 1;
document.forms["newsmanager"].submit();
}
</script>
<form name = "newsmanager" method="post" action="NewsManager.php">
<input type = "hidden" id="clickednext" name="clickednext" >
if(isset($_POST['clickednext']) && $_POST['clickednext']>=1)
{
$_POST['clickednext'] = $_POST['clickednext'] +9;
$NewsQuery = "SELECT NewsDetails FROM News LIMIT " .$_POST['clickednext']. ",10";
}
else
{
$NewsQuery = "SELECT NewsDetails FROM News LIMIT 0,10";
}
$result = mysqli_query($dbc,$NewsQuery);
}
更新:
<div class=d2 align=left>
<a href="#" onclick=" nextclicked(); submit();" >
Next
</a>
更新结束......
第一次点击 Next 超链接 label 时,它起作用了,即 10 被分配 $_POST['clickednext'] 并且接下来的 10 个值从数据库中出现,但第二次我点击 label,然后它没有不是吗?
您的代码完全错误。 你应该放弃它并重新开始。 我会告诉你如何做到这一点。
对于 Ajax,我有一个规则,它是这样的。 如果您在没有 Ajax 的情况下无法执行此功能,则您无法尝试使用 Ajax 执行此操作。
如果您对 javascript 有所了解,您就会知道 XmlHttpRequest 使与 Ajax 的合作变得糟糕透顶。 因此我们有 javascript 框架,例如 JQuery 和 Mootools。 您可能还喜欢名为 PHPLiveX 的 php ajax 框架。 我只使用JQuery,所以这里是JQuery中的解决方法。
第 1 步:剥离 ajax 并在 php 中创建解决方案
步骤 2a:使用 PHPLiveX 创建 ajax PHPLiveX 真的很酷且被低估了,因为它允许您使用 php 函数而无需重新加载整个页面,这比使用 ZDE9BFD762321E 更方便。
PHPLiveX 将为您提供最好的帮助。 这很简单。 您调用 php function 来执行某些操作,返回一些值,然后选择目标:您希望将值设置为 go 的位置。
我个人会使用 PHPLiveX 来完成这项工作,因为它更适合。 JQuery 更多用于 postdata。
步骤 2b:在 JQuery 中创建 ajax
我将假设您知道如何通过 id 使用 JQuery 和 append 或替换它们来使用 select 元素。 如果没有,您可以查看 function。
以下是使用 JQuery 提交 POST 或 GET 所需的代码。 将此适应您的代码。 您必须修改下面的代码以添加附加内容。
$(".tornfieldcard").click(function() {
var dataString = $("#addfieldForm").serialize();
//lets get the form data and use that
var newValue = $("#newValue").val();
var itemid4 = $(this).attr("itemid4");
var dataString = "itemid=" + itemid + "&newValue=" + newValue;
//or get the attr/valu from elements
$("#loading5").show();
$("#loading5").fadeIn(400).html('<img src="icons/loading.gif">');
$.ajax({
type: "POST",
url: "ajaxcontrols.php",
data: dataString,
cache: false,
success: function(html){
$("#loading5").remove();
$(".fieldcardNEW").fadeOut('slow');
$('.fieldcardNEW').remove();
$("#conveyorbelt_"+itemid4+"").append("<div class=\"fieldcard\"><b>"+attribute+"</b> <br><div itemid=\""+itemid4+"\" attribute=\""+attribute+"\">"+value+"</div></div>");
}
});
PHP 是服务器端语言。 你必须把你的 php 代码
<?php
=====
<script language="Javascript">
function nextclicked()
{
document.getElementById("next").value = document.getElementById("next").value + 1;
document.forms["newsmanager"].submit();
}
</script>
<form name = "newsmanager" method="post" action="NewsManager.php">
<input type = "hidden" id="clickednext" name="clickednext" >
<?php
if(isset($_POST['clickednext']) && $_POST['clickednext']>=1)
{
$_POST['clickednext'] = $_POST['clickednext'] +9;
$NewsQuery = "SELECT NewsDetails FROM News LIMIT " .intval($_POST['clickednext']). ",10";
}
else
{
$NewsQuery = "SELECT NewsDetails FROM News LIMIT 0,10";
}
$result = mysqli_query($dbc,$NewsQuery);
}
?>
此外,用户不能点击隐藏的表单域。 例如,您需要按钮并准备好 onclick 事件
<button name="next" value="1" onclick="nextclicked();">Next</button>
这是我使用 php 编写的一个小算法来创建分页:
$x=$numStories;
$y=$x%5;
$z=($x-$y)/5;
if($y!=0){
$numPages=$z+1;
}
else{
$numPages=$z;
}
其中 5 是每页的故事数, $numStories
是您希望使用的故事总数(或在您的情况下为新闻文章)。
然后,只需以您喜欢的任何方式显示页面数量( $numPages
),以及您对 go 的好处。
[编辑]
我创建了一个archive.php
页面,该页面将页码作为 GET 参数( archive.php?page=3
)。 从那里,我选择了数据库中$pageNum
(在本例中为 3)* 10
(或者您希望显示的每页有多少帖子)之后的前五个条目。
最好的办法是让你的代码尽可能多地动态和灵活,这样它就可以自我维持。
[编辑 2]
<script>
function nextclicked()
{
document.forms["newsmanager"].submit();
}
</script>
<?php
$currentPage = $_POST['page'];
$numStories = //get the total amount of entries
$x=$numStories;
$y=$x%10;
$z=($x-$y)/10;
if($y!=0){
$numPages=$z+1;
}
else{
$numPages=$z;
}
if(isset($currentPage) && $currentPage>=1)
{
$currentPage = $currentPage +9;
$NewsQuery = "SELECT NewsDetails FROM News LIMIT " .$currentPage. ",10";
}
else
{
$NewsQuery = "SELECT NewsDetails FROM News LIMIT 0,10";
}
$result = mysqli_query($dbc,$NewsQuery);
}
?>
<form>
<input type='hidden' name='page' text='' value='<?php echo "$currentPage"' />
</form>
<a href="#" onclick="nextClicked()">Next--></a>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.