[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Location.Replase, JS и RadioButton Value
bma
Есть задача - блокировка возвращения на предидущую стр выполняемая Location.Replace и есть на форме страницы скрытые поля и радиокнопки.

Суть трабла: при переходе не через 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=javascript:main()> Выход в главное меню</a> </div></td>
<td><div id=coolmenu> <a href=javascript: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>




Спустя 1 час, 30 минут, 44 секунды (15.05.2009 - 16:37) glock18 написал(а):
Если нужны данные из формы, это делается очень просто:

1. Форме выставляешь новый action (если надо). Что-то в этом духе:
Код

document.forms.myform.action = newAction;


2. Сабмитишь форму (данные будут отправлены по этому адресу):
Код

document.forms.myform.submit();


Надеюсь, поможет.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.