B
bma
Есть задача - блокировка возвращения на предидущую стр выполняемая Location.Replace и есть на форме страницы скрытые поля и радиокнопки.
Суть трабла: при переходе не через Submit, а напрямую через JS (т.е. через Location.Replace) "теряются" данные с полей и Value радиокнопок. с полями проблему решил выведя данные $_SESSION, а вот как быть с данными с Value радиокнопок?
Суть трабла: при переходе не через Submit, а напрямую через JS (т.е. через Location.Replace) "теряются" данные с полей и Value радиокнопок. с полями проблему решил выведя данные $_SESSION, а вот как быть с данными с Value радиокнопок?
Код:
<?php
include "dbsettings.inc";
include "protect.inc";
if(isset($_GET["err"]))
{ if($_GET["err"]==1)
{print "Вы не имеете прав для просмотра этой таблицы!";}
}
$quer1="SELECT *FROM voprosotvet WHERE id=$massiv[$i]";
$resul1=mysql_query($quer1) or die("Err:quer1");
?>
<script LANGUAGE="JavaScript">
function exit() {
window.setTimeout("window.open('logout.php')",0)
window.setTimeout("window.close()",0)
}
function main() {
window.setTimeout("window.open('main.php')",0)
window.setTimeout("window.close()",0)
}
function V5()
{
location.replace("vopros_check.php");
//Location.Replace заставляет браузер "забыть" предидущую стр. Т.е. не дает вернуться к предидущему вопросу
}
</script>
<style type="text/css">
BODY {
background-color: dff4fa; /* Цвет фона веб-страницы */
}
</style>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Тестирование</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<!--Подключаем шапку сайта-->
<? include("header.php"); ?>
<tr>
<td><table width="690" border="0" cellspacing="0" cellpadding="0">
<tr>
<?php
?>
<?
if ($max==$i)
{
//вывод результатов
display_result($T_vop,$F_vop,$massiv,$max,$i,$sUname,$vop_num);
}
if ($max>$i)
{
//вывод самого теста
display_test($T_vop,$F_vop,$massiv,$max,$i,$sUname,$vop_num);
}
function display_result($T_vop,$F_vop,$massiv,$max,$i,$sUname,$vop_num)
{
//вывод результатов
echo "<form action=main.php method=POST>
<td><table width=800 border=0 cellspacing=0 cellpadding=0>
<td><div id=coolmenu> <a href=java script:main()> Выход в главное меню</a> </div></td>
<td><div id=coolmenu> <a href=java script:exit()> Выход</a> </div></td>
</table></td>
<table align=center width=800 border=0 cellspacing=0 cellpadding=0>
<p align=center><strong>Результаты тестирования:</strong></p>
<p align=center><strong>В ходе проверочного тестирования Вы совершили ошибок:</strong>$F_vop;</p>
</table>
</form>";
}
?>
<?php
//вывод теста
function display_test($T_vop,$F_vop,$massiv,$max,$i,$sUname,$vop_num)
{
$quer1="SELECT *FROM voprosotvet WHERE id=$massiv[$i]";
$resul1=mysql_query($quer1) or die("Err:quer1");
while($row=mysql_fetch_array($resul1))
{
echo "<form method=post name=formname1 action=vopros_check.php>
<table align=center width=800 border=0 cellspacing=0 cellpadding=0>
<p><strong>ID:</strong> $massiv[$i] <strong>Попыток:</strong> $F_vop <strong>Вопросов отвечено правильно:</strong> $T_vop; <strong>Вопросов отвечено не правильно:</strong> $F_vop; <strong>Имя тестируемого:</strong> $sUname;</p>
<p align=center><strong>вопрос №: $vop_num </strong> <br> <label name=vopros rows=5 cols=70>$row[vopros]</p>
<p align=center><strong>Выберете правильный ответ:</strong>
<p align=center ><img border=1 src=Admin/DATA/images/$row[image_media_file]></p>
<table align=center width=780 border=0 cellspacing=6 cellpadding=0>
<tr>
<td width=370> <label name=otvet1 rows=2 cols=60>$row[otvet1]</td><td width=10><input type='radio' name='votvet' value=1 onClick=sm.disabled=false;> </td>
<td width=370> <label name=otvet2 rows=2 cols=60>$row[otvet2]</td><td width=10><input type='radio' name='votvet' value=2 onClick=sm.disabled=false;> </td>
</tr><tr>
<td> <label name=otvet3 rows=2 cols=60>$row[otvet3]</td><td><input type='radio' name='votvet' value=3 onClick=sm.disabled=false;> </td>
<td> <label name=otvet4 rows=2 cols=60>$row[otvet4]</td><td><input type='radio' name='votvet' value=4 onClick=sm.disabled=false;> </td>
</tr><tr>
<td> <label name=otvet5 rows=2 cols=60>$row[otvet5]</td><td><input type='radio' name='votvet' value=5 onClick=sm.disabled=false;> </td>
<td> <label name=otvet6 rows=2 cols=60>$row[otvet6]</td><td><input type='radio' name='votvet' value=6 onClick=sm.disabled=false;> </td>
</tr>
</table>
<br>
<INPUT type=hidden value=$row[id] name=id>
<INPUT type=text value=$row[true_otvet] name=true_otvet>
<p align=center ><input type=button onclick=V5() value=NEXT id=sm disabled></p>
</form>";
//скрытое поле true_otvet - даннные из БД какой из ответов верный(номер)
//ID - ID вопроса в БД
//votvet - радиобаттноы. Value - номер у каждого свой. при проверке сверяется, =ли номер выбранного радиобаттона правильному ответу
//file_help_name-название файла помощи к данному вопросу. При необходимости к нему идет обращение
$_SESSION['file_help_name'] = $row['file_help_name'];
//вынос в сессию данных поля
$_SESSION['true_otvet'] = $row['true_otvet'];
//вынос в сессию данных поля
//по идее должнобыть чтото аналогичное $_SESSION для выноса в сессию данных Value радиобаттнонов.
//Оно и нужно... Но я не знаю как...
}
}
?>
<!--Подключаем нижний графический элемент-->
<? include ("footer.php"); ?>
</table>
</table>
</body>
</html>