Php 分页:如何通过选择提交移动到下一页
我有一个名为Quizes.php的主页,其中包含一个分页脚本,显示页面列表,即[1][2][3]。。。。。我的代码在Php 分页:如何通过选择提交移动到下一页,php,html,pagination,Php,Html,Pagination,我有一个名为Quizes.php的主页,其中包含一个分页脚本,显示页面列表,即[1][2][3]。。。。。我的代码在和其他方面运行良好,但没有帮助 <?php $page = $_GET['page']; if($page == ""){ $page = "1"; }else{ // If page is
和其他方面运行良好,但没有帮助
<?php
$page = $_GET['page'];
if($page == ""){
$page = "1";
}else{
// If page is set, let's get it
$page = $_GET['page'];
}
// Now lets get all messages from your database
$sql = "SELECT * FROM quizes";
$query = mysql_query($sql);
// Lets count all messages
$num = mysql_num_rows($query);
// Lets set how many messages we want to display
$per_page = "2";
// Now we must calculate the last page
$last_page = ceil($num/$per_page);
echo 's', $num;
// And set the first page
$first_page = "1";
// Here we are making the "First page" link
echo "<a href='?page=".$first_page."'>First page</a> ";
// If page is 1 then remove link from "Previous" word
if($page == $first_page){
echo "Previous ";
}else{
if(!isset($page)){
echo "Previous ";
}else{
// But if page is set and it's not 1.. Lets add link to previous word to take us back by one page
$previous = $page-1;
echo "<a href='?page=".$previous."'>Previous</a> ";
}
}
// If the page is last page.. lets remove "Next" link
if($page == $last_page){
echo "Next ";
}else{
// If page is not set or it is set and it's not the last page.. lets add link to this word so we can go to the next page
if(!isset($page)){
$next = $first_page+1;
echo "<a href='?page=".$next."'>Next</a> ";
}else{
$next = $page+1;
echo "<a href='?page=".$next."'>Next</a> ";
}
}
// And now lets add the "Last page" link
echo "<a href='?page=".$last_page."'>Last page</a>";
// Math.. It gets us the start number of message that will be displayed
$start = ($page-1)*$per_page;
// Now lets set the limit for our query
$limit = "LIMIT $start, $per_page";
// It's time for getting our messages
$sql = "SELECT * FROM quizes $limit";
$query = mysql_query($sql);
echo "<br /><br />";
// And lets display our messages
$i=0;
while($row = mysql_fetch_array($query) or die(mysql_error())){
$a= $row['A'];
echo '<form method="get" action="?page=".$next."" >'; // is that correct way?????
while ($row=mysql_fetch_array($query))
{
echo '<div class="boxed" >';
echo "\t".'<tr><th>'.
$row['question']."<br>".
'</th><th>'."<input type='radio' name= '.$i' value='{$row['A']}'>".$row['A']."<br>".
'</th><th>'."<input type='radio' name='.$i' value='{$row['B']}'>".$row['B']."<br>".
'</th><th>'."<input type='radio' name='.$i' value='{$row['C']}'>".$row['C']."<br>".
'</th><th>'."<input type='radio' name='.$i' value='{$row['D']}'>".$row['D'].'</th>
</tr>';
// echo '<input type="hidden" name="page" value="">';
echo '<input type="submit" name="submit"/>';
$i++;
echo '</div>';
echo '</div>';
}
echo '</form>';
}
?>
请帮忙。这看起来像是语法错误
尝试:
echo';
在$next.
周围使用单引号,因为您将单引号与echo
一起使用。如果使用双引号,它将关闭action
属性(解释为javascript,而不是PHP)
此外,您还可以查看PHP错误日志。
<?php
//before you begin - try to know how get works
//clean your code a bit, by mentioning form outside of while loop
//you almost get everything in print_r($_GET); after submit
//i think its better to attach data you get(value from radios,textfields) with that of the current page value(page=1)
//page - a tag - page = 1
//$string = "option1=a";
//$page = 1;
//finalstring = $string.'&'.page=$page;
//url - To next a tags http://example.com/$finalstring
?>
<form action='Quizes.php' method='GET'>
<?php
$i = 0;
//test case
while($i <= 5){
echo '<div class="boxed">';
echo "<input type='radio' name= 'ans[]' value='$i' $checked > $i";
echo '</div>';
$i++;
}
?>
<input type='submit' name='submit' value='submit'/>
</form>
Get方法发送所需url中的数据。您不需要在操作中发送数据,否则将输入字段命名为page并将其值设置为page number。这样,当您提交时,数据将以您想要的方式提交
用这个替换while循环
while($row=mysql\u fetch\u array($query)或die(mysql\u error()){
$a=$row['a'];
回声';
while($row=mysql\u fetch\u array($query))
{
回声';
回显“\t”。”。
$row['question']。“
”。
“.”“$row['A']”。
”。
“.”“$row['B']”。
”。
“.”“$row['C']”。
”。
“.”“$row['D']”
';
回声';
回声';
$i++;
回声';
回声';
}
回声';
}
PHP错误日志中有什么内容?我确信语法错误,但可能还有另一个问题。如果您无法访问PHP服务器上的PHP日志,请在PHP脚本的开头写这行:error\u reporting(E\u ALL)代码>这是我的代码的完整文件。我现在很困惑:我无法正确地测试它,它会产生很多错误,因为我没有数据库和其他页面。我猜你剧本的结尾部分有错误。你说“提交”按钮不起作用,但当你点击它时会发生什么?当我点击相同的页面刷新Hnx时。你能解释一下我应该用我现有的“echo”替换这个代码吗?“?bcz我搞不清楚这是代码中的替换还是添加?尝试一下,并与你的代码进行比较我看到了这一点,但我的逻辑不同,我只是停留在提交上,bcz页面没有转移到下一个。你可以跳过获取当前页面url的操作。我只是为了安全才加的。解析错误:语法错误,意外的“http”(T_字符串),应为“,”或“;”在提交之前取消对隐藏字段的注释,并从表单中删除操作。用此行替换提交前的注释。回声';你能重新检查你的代码吗?bcz我是这样想的:你添加了第二个代码而没有添加我的第一个代码吗??不要添加我的第一个代码。做第二个就行了
<?php
//before you begin - try to know how get works
//clean your code a bit, by mentioning form outside of while loop
//you almost get everything in print_r($_GET); after submit
//i think its better to attach data you get(value from radios,textfields) with that of the current page value(page=1)
//page - a tag - page = 1
//$string = "option1=a";
//$page = 1;
//finalstring = $string.'&'.page=$page;
//url - To next a tags http://example.com/$finalstring
?>
<form action='Quizes.php' method='GET'>
<?php
$i = 0;
//test case
while($i <= 5){
echo '<div class="boxed">';
echo "<input type='radio' name= 'ans[]' value='$i' $checked > $i";
echo '</div>';
$i++;
}
?>
<input type='submit' name='submit' value='submit'/>
</form>