好吧,我有一个页面,我想逐个显示存储在数据库中的项目。一个接一个地意味着点击一个按钮,下一个项目应该到来。 (在我的案例中,项目是问题)。
所以我为此编写了代码。我得到的问题是循环只工作一次。我的意思是当点击下一个按钮时,我显示下一个项目,但是我再次单击“下一步”,没有任何反应。这是代码..
<?php
$qno=1;
require_once('connect.php');
if(isset($_POST['next'])){
$qno+=1;
}
$q="select * from `uquestion` where `qno`='$qno' and
`uname`='{$_SESSION['user']}'";
$result=mysqli_query($con,$q);
if ($result) {
while($row=mysqli_fetch_array($result)){
$qno = $row['qno'];
$question = $row['question'];
$op1 = $row['op1'];
$op2 = $row['op2'];
$op3 = $row['op3'];
$op4 = $row['op4'];
$answer = $row['answer'];
}
}
?>
<form name="exam" method="post" action="exam.php">
<!--My Current page name is "exam.php" -->
<?php echo $question ?> <br>
<input type="radio" name="question1" value="op1"> <?php echo $op1; ?> <br>
<input type="radio" name="question1" value="op2"> <?php echo $op2; ?> <br>
<input type="radio" name="question1" value="op1"> <?php echo $op3; ?> <br>
<input type="radio" name="question1" value="op1"> <?php echo $op4; ?> <br>
<input type="submit" name="previous" value="Previous">
<input type="submit" name="next" value="Next">
</form>
答案 0 :(得分:0)
您的问题是每次运行 exam.php 页面时都将$qno
设置为1.
因此,当您第一次运行代码时,$qno
将为1,因为$_POST['next']
未设置,问题编号1 将是所示。当您点击下一个时,再次$qno
将再次变为1,这次因为$_POST['next']
设置,问题编号2 将会显示。从现在开始,您只会看到问题编号2 。
因此,您的一个解决方案是将问题编号存储在会话变量中。你的代码将是这样的:
<?php
session_start();
require_once('connect.php');
if(!isset($_SESSION['qno']))
$_SESSION['qno'] = 1;
else{
if(isset($_POST['next'])){
$_SESSION['qno'] += 1;
}
}
$q="select * from `uquestion` where `qno`='".$_SESSION['qno']."' and `uname`='{$_SESSION['user']}'";
?>