PHP:测验答案一直显示出来,直到我按下下一个按钮太多次
我正在努力使我的测验有效。我遇到的问题是,当我的代码开始工作时,我可以在单选按钮旁边看到sql表的内容,四个答案按相同id(qid)排序 在我多次按下“下一步”按钮后,我看不到页面上的任何内容,我甚至多次尝试刷新浏览器。我怎样才能在我的页面上再次看到我的问题?我如何防止这种情况再次发生?我正在使用Google Chrome,但我已经在Firefox和Internet Explorer上试用过了,但没有任何效果 PHP/HTMLPHP:测验答案一直显示出来,直到我按下下一个按钮太多次,php,mysqli,radio-button,Php,Mysqli,Radio Button,我正在努力使我的测验有效。我遇到的问题是,当我的代码开始工作时,我可以在单选按钮旁边看到sql表的内容,四个答案按相同id(qid)排序 在我多次按下“下一步”按钮后,我看不到页面上的任何内容,我甚至多次尝试刷新浏览器。我怎样才能在我的页面上再次看到我的问题?我如何防止这种情况再次发生?我正在使用Google Chrome,但我已经在Firefox和Internet Explorer上试用过了,但没有任何效果 PHP/HTML <?php $localhost = "localhost"
<?php
$localhost = "localhost";
$username = "root";
$password = "";
$connect = mysqli_connect($localhost, $username, $password) or die ("Kunde inte koppla");
mysqli_select_db($connect, 'wildfire');
session_start();
$qid = isset($_SESSION['qid']) ? $_SESSION['qid']+1 : 1;
$_SESSION['qid'] = $qid;
ob_start();
echo "<form>";
$sql1 = mysqli_query($connect,"SELECT * FROM question where qid ='$qid'");
while($row1=mysqli_fetch_assoc($sql1))
echo "<input type='radio' name='answer1' value='{$row1['Point']}'>{$row1['answer']}<br>";
echo "<input type='submit' name='forward' value='next'>";
echo "</form>";
$output = ob_get_clean();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php echo $output; ?>
</body>
</html>
试试这个:
<?
$localhost = "localhost";
$username = "root";
$password = "";
$connect = mysqli_connect($localhost, $username, $password) or die ("Kunde inte koppla");
mysqli_select_db($connect, 'wildfire');
$qid = (!isset($_POST['qid']) && intval($_POST['qid']) == 0) ? 1 : $_POST['qid']+1;
?>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form method="post" action="">
<input type="hidden" name="qid" value="<?=$qid?>">
<?php
$sql1 = mysqli_query($connect,"SELECT * FROM question where qid =".intval($qid));
while($row1=mysqli_fetch_assoc($sql1)){
?>
<input type='radio' name='answer1' value="<?php echo $row1['Point'];?>"><?php echo $row1['answer'];?><br>
<?php
}
?>
<input type='submit' name='forward' value='next'>
</form>
</body>
</html>
什么变化?
我使用$\u POST
作为qid ID,而不是SESSION
,因为当你刷新页面时,你需要取消设置SESSION值,所以将qid存储到$\u POST
而不是$\u SESSION中,只使用php和html,这会让用户觉得网站太过时。使用jquery和ajax,使其更加用户友好。不仅如此,刷新页面的次数太多会影响你的带宽。但是我如何做到这一点呢?我宁愿不使用AJAX,因为我对它不太熟悉?奇怪的是,这在一开始就起作用了,我很确定我没有想象到任何事情loop@devpro我刚试过,但什么也没发生在页面的第一行,检查发生了什么:session_start()$qid=isset($_会话['qid'])$_会议['qid']+1:1$_会话['qid']=$qid;打印(美元会话);出口嗯,我在表格里的行上有四个错误。“未定义变量”和期望更多参数等。。但是它们已经被定义了,这真的很奇怪。@PHPScrub:我已经更新了,使用OK,现在没有错误了。但我还是得到了和我问这个问题之前一样的结果。我需要使前八个问题再次可见。@PHPScrub:根据代码,$qid右侧只显示一个问题。。当你向前移动时,$qid将更改为+1,问题也将更改。。。我是对的?哦,我明白了,实际上当你刷新页面时,你的会话被设置为上一个值。您需要取消会话以获取ist问题。。