如何将选中的单选按钮值保存到php中的下一页
how to keep selected radio button values to next page in php?
我正在做一个在线测试应用程序,当我单击下一个按钮时,我需要将所有选定的单选按钮值保留到下一页,因为我使用的是分页。在下面的代码中,当我移动到下一页时,它显示了未定义的偏移错误$optA[$i]。'我需要这些问题的解决方案,请帮助任何人,提前感谢
<?php
session_start();
include('connection.php');
mysql_select_db('quiz_apptitude');
$sql = mysql_query("SELECT * FROM prob_on_age");
$nr = mysql_num_rows($sql);
if (isset($_GET['pn'])) {
$pn = preg_replace('#[^0-9]#i', '', $_GET['pn']);
} else {
$pn = 1;
}
$itemsPerPage = 2;
$lastPage = ceil($nr / $itemsPerPage);
if ($pn < 1) {
$pn = 1;
} else if ($pn > $lastPage) {
$pn = $lastPage;
}
$centerPages = "";
$sub1 = $pn - 1;
$sub2 = $pn - 2;
$add1 = $pn + 1;
$add2 = $pn + 2;
if ($pn == 1) {
$centerPages .= ' <span class="pagNumActive">' . $pn . '</span> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> ';
} else if ($pn == $lastPage) {
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> ';
$centerPages .= ' <span class="pagNumActive">' . $pn . '</span> ';
} else if ($pn > 2 && $pn < ($lastPage - 1)) {
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub2 . '">' . $sub2 . '</a> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> ';
$centerPages .= ' <span class="pagNumActive">' . $pn . '</span> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add2 . '">' . $add2 . '</a> ';
} else if ($pn > 1 && $pn < $lastPage) {
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> ';
$centerPages .= ' <span class="pagNumActive">' . $pn . '</span> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> ';
}
$limit = 'LIMIT ' .($pn - 1) * $itemsPerPage .',' .$itemsPerPage;
$sql2 = mysql_query("SELECT * FROM prob_on_age $limit") or die('error');
//$total=mysql_num_rows($sql2) ;
$i=0;
$outputList = '';
while($row = mysql_fetch_array($sql2)){
$Question[]=$row['prob_Question'];
$optA[]=$row['prob_OptionA'];
$optB[]=$row['prob_OptionB'];
$optC[]=$row['prob_OptionC'];
$optD[]=$row['prob_OptionD'];
$ans[]=$row['prob_Answer'];
$Qid[$i]=$row['prob_Qid'];
$ans[$i]=$row['prob_Answer'];
$r=$i+1;
$outputList .= '<table><tr>
<td> '.$r.' . '.$Question[$i].'</td>
</tr>
<tr> <td><input type="hidden" name="'.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$Qid[$i].'" /></td>
</tr>
<tr>
<td><input type="radio" name=" '.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$optA[$i].'" <?php echo '.$optA[$i].' == $_POST[''.$Qid[$i].''] ? ' checked="checked"' : ''; ?>/>
'.$optA[$i].'</td></tr>
<tr> <td><input type="radio" name=" '.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$optB[$i].'" <?php echo '.$optB[$i].' == $_POST[''.$Qid[$i].''] ? ' checked="checked"' : ''; ?> />
'.$optB[$i].'</td></tr>
<tr> <td><input type="radio" name=" '.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$optC[$i].'" <?php echo '.$optC[$i].' == $_POST[''.$Qid[$i].''] ? ' checked="checked"' : ''; ?>/>
'.$optC[$i].'</td></tr>
<tr> <td><input type="radio" name=" '.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$optD[$i].'" <?php echo '.$optD[$i].' == $_POST[''.$Qid[$i].''] ? ' checked="checked"' : ''; ?>/>
'.$optD[$i].'</td></tr>
<tr> <td><input type="hidden" name="'.$ans[$i].'" id="'.$Qid[$i].'" value="'.$ans[$i].'" /></td>
</tr></table>';
$i++;
}
$count=count($Qid);
$paginationDisplay = "";
if ($lastPage != "1"){
$paginationDisplay .= 'Page <strong>' . $pn . '</strong> of ' . $lastPage. ' ';
if ($pn != 1) {
$previous = $pn - 1;
$paginationDisplay .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $previous . '"> Back</a> ';
}
$paginationDisplay .= '<span class="paginationNumbers">' . $centerPages . '</span>';
if ($pn != $lastPage) {
$nextPage = $pn + 1;
$paginationDisplay .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $nextPage . '">Next</a> ';
}
}
?>
<?php
session_start();
include('connection.php');
mysql_select_db('quiz_apptitude');
$sql = mysql_query("SELECT * FROM prob_on_age");
$nr = mysql_num_rows($sql);
if (isset($_GET['pn'])) {
$pn = preg_replace('#[^0-9]#i', '', $_GET['pn']);
} else {
$pn = 1;
}
$itemsPerPage = 2;
$lastPage = ceil($nr / $itemsPerPage);
if ($pn < 1) {
$pn = 1;
} else if ($pn > $lastPage) {
$pn = $lastPage;
}
$centerPages = "";
$sub1 = $pn - 1;
$sub2 = $pn - 2;
$add1 = $pn + 1;
$add2 = $pn + 2;
if ($pn == 1) {
$centerPages .= ' <span class="pagNumActive">' . $pn . '</span> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> ';
} else if ($pn == $lastPage) {
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> ';
$centerPages .= ' <span class="pagNumActive">' . $pn . '</span> ';
} else if ($pn > 2 && $pn < ($lastPage - 1)) {
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub2 . '">' . $sub2 . '</a> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> ';
$centerPages .= ' <span class="pagNumActive">' . $pn . '</span> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add2 . '">' . $add2 . '</a> ';
} else if ($pn > 1 && $pn < $lastPage) {
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> ';
$centerPages .= ' <span class="pagNumActive">' . $pn . '</span> ';
$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> ';
}
$limit = 'LIMIT ' .($pn - 1) * $itemsPerPage .',' .$itemsPerPage;
$sql2 = mysql_query("SELECT * FROM prob_on_age $limit") or die('error');
//$total=mysql_num_rows($sql2) ;
$i=0;
$outputList = '';
while($row = mysql_fetch_array($sql2)){
$Question[]=$row['prob_Question'];
$optA[]=$row['prob_OptionA'];
$optB[]=$row['prob_OptionB'];
$optC[]=$row['prob_OptionC'];
$optD[]=$row['prob_OptionD'];
$ans[]=$row['prob_Answer'];
$Qid[$i]=$row['prob_Qid'];
$ans[$i]=$row['prob_Answer'];
$r=$i+1;
$outputList .= '<table><tr>
<td> '.$r.' . '.$Question[$i].'</td>
</tr>
<tr> <td><input type="hidden" name="'.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$Qid[$i].'" /></td>
</tr>
<tr>
<td><input type="radio" name=" '.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$optA[$i].'" <?php echo '.$optA[$i].' == $_POST[''.$Qid[$i].''] ? ' checked="checked"' : ''; ?>/>
'.$optA[$i].'</td></tr>
<tr> <td><input type="radio" name=" '.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$optB[$i].'" <?php echo '.$optB[$i].' == $_POST[''.$Qid[$i].''] ? ' checked="checked"' : ''; ?> />
'.$optB[$i].'</td></tr>
<tr> <td><input type="radio" name=" '.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$optC[$i].'" <?php echo '.$optC[$i].' == $_POST[''.$Qid[$i].''] ? ' checked="checked"' : ''; ?>/>
'.$optC[$i].'</td></tr>
<tr> <td><input type="radio" name=" '.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$optD[$i].'" <?php echo '.$optD[$i].' == $_POST[''.$Qid[$i].''] ? ' checked="checked"' : ''; ?>/>
'.$optD[$i].'</td></tr>
<tr> <td><input type="hidden" name="'.$ans[$i].'" id="'.$Qid[$i].'" value="'.$ans[$i].'" /></td>
</tr></table>';
$i++;
}
$count=count($Qid);
$paginationDisplay = "";
if ($lastPage != "1"){
$paginationDisplay .= 'Page <strong>' . $pn . '</strong> of ' . $lastPage. ' ';
if ($pn != 1) {
$previous = $pn - 1;
$paginationDisplay .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $previous . '"> Back</a> ';
}
$paginationDisplay .= '<span class="paginationNumbers">' . $centerPages . '</span>';
if ($pn != $lastPage) {
$nextPage = $pn + 1;
$paginationDisplay .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $nextPage . '">Next</a> ';
}
}
?>
<html>
<head>
<title>online QiuZ</title>
</head>
<body>
<div style="margin-left:64px; margin-right:64px;">
<h2>Problem On Age</h2>
</div>
<!-- <div style="margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;"><?php //echo $paginationDisplay; ?></div>-->
<div style="margin-left:64px; margin-right:64px;">
<form name="prob_age" id="prob_age" method="post" action="result-age.php" >
<?php print "$outputList"; ?>
<div style="margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;"><?php echo $paginationDisplay; ?></div>
<input type="submit" name="submit" id="submit" value="submit">
</form>
</div>
</body>
</html>
好吧,你可以用PHP Sessions
和/或Cookies
(对于你的情况几乎相同)来做,但如果出于任何原因,在测试过程中出现了问题。。。你将失去所有的进度,用户必须重新开始。
如果测验很短,你可以这样做,但如果是>=中长测验。。。我建议使用$_POST
&Forms
而不是分页链接。当然,同时也要保存进度。
有了这个,如果你想预先检查单选按钮、输入字段或任何东西。。。只需在下次打开该页面时调用适当的变量(也可能是另一天,因为这些值存储在服务器中,而不是用户机器中。)
祝好运
当我检查代码时,我发现您的变量$output列表数据不正确。替换为以下内容:
您在php变量的字符串中使用if条件进行回显:
<?php echo '.$optB[$i].' == $_POST[''.$Qid[$i].''] ? ' checked="checked"' : '';
您在$output变量中使用的上述行不正确。您需要更改此行如下:
$output .= ....//other code
$output .= ($optB[$i] == $_POST[$Qid[$i]]) ? ' checked="checked"' : '';
$output .= ......
如上所述,替换$output
变量字符串中的每个<?php echo
。
编辑:
检查您的以下代码:
$outputList .='<table><tr>
<td> '.$r.' . '.$Question[$i].'</td>
</tr>
<tr> <td><input type="hidden" name="'.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$Qid[$i].'" /></td>
</tr>
<tr>
<td><input type="radio" name=" '.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$optA[$i].'"
<?php echo '.$optA[$i].' == $_POST[''.$Qid[$i].''] ? ' checked="checked"' : ''; ?>
//在这里,您将在php标记中再次启动php标记。所以删除php和echo标签。正如我提到的那样将其用作$outputList.=($optA[$i]=$_POST[$Qid[$i]])?'checked="checked"':'';在它之前关闭上面的刺。对其他刺也一样。
/>
'.$optA[$i].'</td></tr>
<tr> <td><input type="radio" name=" '.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$optB[$i].'" <?php echo '.$optB[$i].' == $_POST[''.$Qid[$i].''] ? ' checked="checked"' : ''; ?> />
'.$optB[$i].'</td></tr>
<tr> <td><input type="radio" name=" '.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$optC[$i].'" <?php echo '.$optC[$i].' == $_POST[''.$Qid[$i].''] ? ' checked="checked"' : ''; ?>/>
'.$optC[$i].'</td></tr>
<tr> <td><input type="radio" name=" '.$Qid[$i].'" id="'.$Qid[$i].'" value="'.$optD[$i].'" <?php echo '.$optD[$i].' == $_POST[''.$Qid[$i].''] ? ' checked="checked"' : ''; ?>/>
'.$optD[$i].'</td></tr>
<tr> <td><input type="hidden" name="'.$ans[$i].'" id="'.$Qid[$i].'" value="'.$ans[$i].'" /></td>
</tr></table>';
注意:如果你不明白我在说什么,请告诉我我会的修改后的代码。并将修改更多您。
相关文章:
- 如何在一页网站中使用PHP重定向到一个页面
- 如何返回到上一页并用php或javascript刷新它
- 获取JavaScriptvar的值并将其赋值's值转换为另一页中的PHP变量
- Php,从文本框获取值到下一页
- 如何使用 php 重定向到上一页并保持所有填充的输入相同
- 移动到 php 表的下一页而不刷新
- JavaScript 将变量传递到下一页(没有 PHP)
- PHP 分页 现有代码中的“下一步”按钮
- PHP:如何在关闭弹出窗口时返回到上一页
- 如何将选中的单选按钮值保存到php中的下一页
- 当传递单选按钮值时,PHP重定向到另一页上的锚链接
- 如何验证与java脚本的php表单,那是在我的网站的每一页
- 从前一页的数据传输到第二页PHP/MySQL
- 执行PHP "action=add"命令,然后转移到另一页
- PHP导航到前一页后登录的解决方案
- 如何通过复选框值一页另一页在php
- PHP从前一页的表单中获取值
- php回调函数到下一页
- 变量丢失发送在query字符串从上一页在php中刷新
- php中一页多表单