Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: тесты на PHP
 
 автор: Sajmon   (18.09.2008 в 12:41)   письмо автору
 
 

Здраствуйте уважаемые форумчане!
написал я скрипт тестирования студентов, все все работает отлично но есть маленькое НО! тест не ограничен во времени, т.е. через 100 секунд нужно перейти на скрипт обработки С вашей помощью узнал что время на странице пишется через JS Закозал скрипт - нописали!
<body>
<!--  -->
<span id="t"></span>
<script language="JavaScript">
<!--
var n=100
var inter=setInterval("f()",1000)
t.innerText=n
function f(){
n--

if(n==0){
location.href="perexod2.php"
clearInterval(inter)
}
t.innerText=n
}
//-->
</script>

Добавил немного своего и вышло:

<html>
<head>
<title></title>
<meta/>
</head>
<body>
<!-- ------------------------------------------------------------------------------------------------------------ -->
<span id="t"></span>
<script language="JavaScript">
<!--
var n=100
var inter=setInterval("f()",1000)
t.innerText=n
function f(){
n--

if(n==0){
location.href="perexod2.php"
clearInterval(inter)
}
t.innerText=n
}
//-->
</script>
<!-- ---------------------------------------------------------------------------------------------------------------- -->
<h1>Тести з курсу інформатики</h1>
<hr>
<form method='post' action="perexod2.php">
<h2><center>Hardware</center></h2>
Введіть ПІБ <input type='text' name='fio' size='50'>
Курс  <input type='text' name='one' size='10'>
Група  <input type='text' name='two' size='10'>
Факультет  <input type='text' name='total' size='50'>
<hr>
<h2>1.Який компонент комп'ютера проводить обчислення і оперує даними?</h2>
<form method='post' action="test2.php">
<input type="radio" name="t" value='1'>Процесор.<br>
<input type="radio" name="t" value='2'>BIOS<br>
<input type="radio" name="t" value='3'>Материнська плата.<br>
<hr>
<h2>2.Від чого залежить продуктивність системи?</h2>

<input type="radio" name="y" value='1'>Від BIOS.<br>
<input type="radio" name="y" value='2'>Від розміра монітора.<br>
<input type="radio" name="y" value='3'>Від продуктивності процесора.<br>
<input type="radio" name="y" value='4'>Від CMOS.<br>
<hr>
<input type="submit" name="submit" value="Перевірити">
</form>
</body>
</html>

вот скрипт обработки формы

<?php
define
("PROCENTI"20);
define("PROCENTIY"10);
    
if (isset (
$_POST['submit']))
{
    {
        
$first=$_POST['fio'];
        if(
$fio==''){print "<font size='' color='red'>Вы не ввели Фамилию Имя 

Отчество!</font> <a href='perexod.html'><<<назад</a>"
; exit;}
        
    }
    {
        
$first=$_POST['one'];
        if(
$one==''){print "<font size='' color='red'>Вы не ввели Курс!</font> <a 

href='perexod.html'><<<назад</a>"
; exit;}
        
    }
    {
        
$first=$_POST['two'];
        if(
$two==''){print "<font size='' color='red'>Вы не ввели Группу!</font> <a 

href='perexod.html'><<<назад</a>"
; exit;}
        
    }
    {
        
$first=$_POST['total'];
        if(
$total==''){print "<font size='' color='red'>Вы не ввели 

Факультет!</font> <a href='perexod.html'><<<назад</a>"
; exit;}
        
    }
    

    
$a=$_POST['t'];
    if (
$t=="1") {$t="25";}
    if (
$t=="2") {$t="0";}
    if (
$t=="3") {$t="0";}
    
//echo $t;
}
{
    
$a=$_POST['y'];
    if (
$y=="1") {$y="0";}
    if (
$y=="2") {$y="0";}
    if (
$y=="3") {$y="25";}
    if (
$y=="4") {$y="0";}
    
//echo $y;
}
}
$tay=date("H:i jS F");
$g=$t+$y;
$procen=$g*PROCENTI/PROCENTIY;
echo 
"<b>ФИО      </b>".$fio."<br>\n";
echo 
"<b>Курс      </b>".$one."<br>\n";
echo 
"<b>Група      </b>".$two."<br>\n";
echo 
"<b>Факультет      </b>".$total."<br>\n";
//echo $g."<br>";
echo $procen."%<br>";
if (
$procen<80)
echo 
"<h2>Ви не здали<h2><br> <img src='test3.JPG'><br><h2>Результат проходження 

тесту\t\t"
.$fio."\t\tвідправленно вікладачу\t\t".$tay;
elseif (
$procen==80)
echo 
"<h2> Ви здали</h2><img src='test2.jpg'>";
elseif (
$procen==100)
echo 
"<h2> Ви здали</h2><img src='test.JPG'>";
?>

Проблема в том как сделать чтоб ява скрипт отправил значение из формы (проще говоря нажал на кнопку Submit) ?

  Ответить  
 
 автор: sim5   (18.09.2008 в 12:53)   письмо автору
 
   для: Sajmon   (18.09.2008 в 12:41)
 

<form method='post' action="perexod2.php"> заменить на <form id="frm(это пример, можете выбрать другое имя индентификатора)" method='post' action="perexod2.php">
Теперь можете отправить форму методом:
document.getElementById('frm').sumit(), заменив этой строкой строку location.href="perexod2.php" в вашем коде, но сперва очистите интервал, а потом отправляйте форму.

  Ответить  
 
 автор: Sajmon   (18.09.2008 в 12:59)   письмо автору
 
   для: sim5   (18.09.2008 в 12:53)
 

если можна немного подробнее я только начинаю немного не понял про очистку интервала

  Ответить  
 
 автор: sim5   (18.09.2008 в 13:09)   письмо автору
 
   для: Sajmon   (18.09.2008 в 12:59)
 

Это здесь:
if(n==0){ 
//location.href="perexod2.php" эту строку выбрасываем
clearInterval(inter);
//а тут отправляем форму, прописав строку
//которую я привел в примере  
}

  Ответить  
 
 автор: Sajmon   (18.09.2008 в 13:18)   письмо автору
 
   для: sim5   (18.09.2008 в 13:09)
 

Уважаемый sim5 могу я вас попросить привести полностью скрипт а не по частя а то я чото наделал что ничего не работает!

  Ответить  
 
 автор: sim5   (18.09.2008 в 13:25)   письмо автору
 
   для: Sajmon   (18.09.2008 в 13:18)
 

Вы хотите чтобы я всю вашу портянку переписал ? ) Ну неужели трудно в вашем коде найти выражение if(n==0) и далее прописать то, что с написал:
if(n==0){  
clearInterval(inter); 
document.getElementById('frm').sumit();   
}

Если вы конечно дадите id форме, такое, как в моем примере: frm.

  Ответить  
 
 автор: Sajmon   (18.09.2008 в 13:53)   письмо автору
 
   для: sim5   (18.09.2008 в 13:25)
 


<html>
<head>
<title></title>
<meta/>
</head>
<body>
<!--  -->
<span id="t"></span>
<script language="JavaScript">
<!--
var n=10
var inter=setInterval("f()",1000)
t.innerText=n
function f(){
n--

if(n==0){
clearInterval(inter);  
document.getElementById('frm').sumit();  
}
t.innerText=n
}
//-->
</script>
<!-- ---------------------------------------------------------------------------------------------------------------- -->
<h1>Тести з курсу інформатики</h1>
<hr>
<form id="frm()" method='post' action="perexod2.php">
<h2><center>Hardware</center></h2>
Введіть ПІБ <input type='text' name='fio' size='50'>
Курс  <input type='text' name='one' size='10'>
Група  <input type='text' name='two' size='10'>
Факультет  <input type='text' name='total' size='50'>
<hr>
<h2>1.Який компонент комп'ютера проводить обчислення і оперує даними?</h2>
<form method='post' action="test2.php">
<input type="radio" name="t" value='1'>Процесор.<br>
<input type="radio" name="t" value='2'>BIOS<br>
<input type="radio" name="t" value='3'>Материнська плата.<br>
<hr>
<h2>2.Від чого залежить продуктивність системи?</h2>

<input type="radio" name="y" value='1'>Від BIOS.<br>
<input type="radio" name="y" value='2'>Від розміра монітора.<br>
<input type="radio" name="y" value='3'>Від продуктивності процесора.<br>
<input type="radio" name="y" value='4'>Від CMOS.<br>
<hr>
<input type="submit" name="submit" value="Перевірити">
</form>
</body>
</html>

правильно? а то что то не работает

  Ответить  
 
 автор: sim5   (18.09.2008 в 13:57)   письмо автору
 
   для: Sajmon   (18.09.2008 в 13:53)
 

id="frm" - без всяких скобок. В скобках я написал для вас, что вы можете вырать другое имя.

  Ответить  
 
 автор: Sajmon   (18.09.2008 в 15:35)   письмо автору
 
   для: sim5   (18.09.2008 в 13:57)
 

но сабака не работает

[code
<html>
<head>
<title></title>
<meta/>
</head>
<body>
<!--  -->
<span id="t"></span>
<script language="JavaScript">
<!--
var n=10 // количество секунд
var inter=setInterval("f()",1000)// запускаем таймер - 1000 миллисикунды
t.innerText=n
function f(){
n--

if(n==0){ // если время выщло
clearInterval(inter)  // убераем интервалы
document.getElementById('frm').sumit()  // взять данные из формы которая ниже
//location.href="script.php" //переходим на эту страницу
}
t.innerText=n
}
//-->
</script>
<!-- ---------------------------------------------------------------------------------------------------------------- -->
<h1>Тести з курсу інформатики</h1>
<hr>
<form id="frm" method='post' action="perexod2.php">
<h2><center>Hardware</center></h2>
Введіть ПІБ <input type='text' name='fio' size='50'>
Курс  <input type='text' name='one' size='10'>
Група  <input type='text' name='two' size='10'>
Факультет  <input type='text' name='total' size='50'>
<hr>
<h2>1.Який компонент комп'ютера проводить обчислення і оперує даними?</h2>
<form method='post' action="test2.php">
<input type="radio" name="t" value='1'>Процесор.<br>
<input type="radio" name="t" value='2'>BIOS<br>
<input type="radio" name="t" value='3'>Материнська плата.<br>
<hr>
<h2>2.Від чого залежить продуктивність системи?</h2>

<input type="radio" name="y" value='1'>Від BIOS.<br>
<input type="radio" name="y" value='2'>Від розміра монітора.<br>
<input type="radio" name="y" value='3'>Від продуктивності процесора.<br>
<input type="radio" name="y" value='4'>Від CMOS.<br>
<hr>
<input type="submit" name="submit" value="Перевірити">
</form>
</body>
</html>

  Ответить  
 
 автор: sim5   (18.09.2008 в 16:42)   письмо автору
 
   для: Sajmon   (18.09.2008 в 15:35)
 

Во-первых я допустил ошибку в написании метода - правильно так: submit(). Второе, дайте имя вашей кнопки submit другое, например:
<input type="submit" name="submt" value="Перевірити">
Третье, что за объявление формы внутри формы: <form method='post' action="test2.php"> - выборосить это.
Четвертое - запись t.innerText=n вне функции удалить... Короче скрипт запишите так, и между тегами HEAD:
<head> 
 
<script language="JavaScript"> 
<!-- 
var n=10 // количество секунд 
var inter=setInterval("f()",1000)// запускаем таймер - 1000 миллисикунды 
function f(){ 
  n-- 
  if(n==0) { // если время выщло 
    clearInterval(inter); 
    document.getElementById("frm").submit(); 
  } 
  t.innerText=n 

//--> 
</script>
</head>

И запишите в элемент SPAN начальное число 10, чтобы не скакала страница при запуске интервала.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования