Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отправлять данные на сервер, не обновляя всю фому 
:(
    Опции темы
Kiti
Дата 9.12.2010, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 29.7.2003

Репутация: нет
Всего: 1



Доброе время суток!
Пожалуйста помогите решить следующую проблему:
есть jsp страничка для тестирования студентов, на которой отображается один вопрос (из 40) с вариантами ответов
и таймер(обратный отсчет времени)
после выбора студентом правильного ответа и перехода на другой вопрос происходит submit формы
и тут у меня обнуляется значение поля с таймером
можно ли каким-либо образом отправить правильный ответ на сервер не обновляя всю форму???

вот сама страничка:
Код

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/>
        <META HTTP-EQUIV="Pragma" CONTENT="no-cache"/>
        <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, no-store, must-revalidate, proxy-revalidate"/>
        <link href="bin/style.css" rel="stylesheet" TYPE="text/css">
        
        <title>TITLE</title>
    </head>
  <script type="text/javascript">
    function StartTest(){
    //--------------------------------------------------------
       /* var div_quest=document.getElementById("question");
        var div_button=document.getElementById("startbutton");

        div_quest.style.display='block';
        div_button.style.display='none';*/
        
    //--------------------------------------------------------  
    //запуск таймера
        var min=parseInt(document.getElementById("count_time").value,10);
        if(min!=0)timer_Back("remain",min,0);      
    }
    
    function setChanged(){
        var changed=document.getElementById("changed");
        
        if (changed.value=="not"){
            changed.value="changed";
        }
    }
    
    function cancelAnswer(){
        var right_f=document.getElementsByName("right");
        var changed=document.getElementById("changed");
                
        for(var i=0;i<right_f.length;i++){
            if (right_f[i].checked){
                right_f[i].checked=false;
                changed.value="not";
                break;
            }
        }
    }
    
    function timer_Back(element,minutes,seconds) {
    
    interval = setInterval(function() {
        var el = document.getElementById(element);
        var label= document.getElementById("remain_l");
        if(seconds == 0) {
            if(minutes == 0) {
                //el.innerHTML = "countdown's over!";  
                el.value= "Ваше время истекло";
                label.innerHTML= "Ваше время истекло";
                alert('TIME is OVER');
                clearInterval(interval);
                return;
            } else {
                minutes--;
                seconds = 60;
            }
        }
        if(minutes > 0) {
            var minute_text = minutes ;
            //+ (minutes > 1 ? ' minutes' : ' minute')
        } else {
            var minute_text = '';
        }
        var second_text = seconds > 1 ? 'seconds' : 'second';
        //el.innerHTML = minute_text + ' ' + seconds + ' ' + second_text + ' remaining';
        el.value=minute_text + ':'+ seconds;
        label.innerHTML=minute_text + ':'+ seconds;
        //+ seconds + ' ' + second_text + ' remaining';
        seconds--;
    }, 1000);}
    
    function SaveAndGo(){
        var changed=document.getElementById("changed");
        var theURL;
        
        if(changed.value=="changed"){
            document.test.submit();
        }else{
            //window.location.href=theURL;
        }
        
    }
    function forming_questPages(){
    with(document){
     var f=document.getElementById("quest_num_f");
     var num=f.value;
     for(var i=1; i<=40; i++){
        if(i!=num){
           document.writeln("<option value='"+i+"'>"+i+"</option>");
        };
     }
   }
    }
  </script>    
  
  <body background="" onload="StartTest()">
  <form name="test">
  <!-- скрытые поля -->          
   <input type="hidden" value="0" name="quest_num_f" id="quest_num_f"/><br> 
   <input type="hidden" value="" name="timer" id="timer"/><br>
   <input type="hidden" value="not" name="changed" id="changed"/><br>
   <input type="hidden" value="40" name="count_time" id="count_time"/><br>
  <!------------------>
        
        <!-- Блок Вопроса и Ответов - начало -->
        <div name="question" id="question" >
        <table align="center" border="0" width="98%" bgcolor="" >
            <tr>
                <td class="text_solid" bgcolor="" align="left">
                 &nbsp; &nbsp; &nbsp; Оставшееся время:  
                 <input type="hidden" readonly name="remain" id="remain">
                 <label name="remain_l" id="remain_l"></label>
                &nbsp;
                </td>
            </tr>
            <tr>
               <td valign="top" align="center" width="100%" bgcolor="" >
                  <table bgcolor="" width="95%" cellpadding="5px">
                   <tr>
                       <td class="text_solid" align="left" >
                           Вопрос № <label id="quest_num_label" name="quest_num_label"></label>
                       </td>
                   </tr>
                   <tr>
                       <td class="text_solid">
                           <div style="border: solid 1px black; background: #fff;" align="left" id="f_quest_viewdiv">&nbsp; <br>&nbsp; <br>&nbsp; <br>&nbsp; <br>&nbsp; <br>
                           </div>
                       </td>
                   </tr>
                  </table>
                  <br>
                  <table  width="95%" bgcolor="" border="1px" cellpadding="5px"  style="border-collapse: collapse;"  bordercolor="#c0c0c0">
                   <tr>
                       <td class="text_solid" align="center" valign="top"  width="5%">
                           Верный ответ
                       </td>
                       <td class="text_solid" align="left" >
                           Ответы
                       </td>
                   </tr>
                   <tr>
                       <td class="text_solid" align="center">
                           <input type="radio" value="1" name="right" id="right" onchange="setChanged()"/>
                       </td>
                       <td class="text_solid">
                           <div style="border: solid 1px black; background: #fff;" align="left" id="f_quest_viewdiv">&nbsp; <br>&nbsp; <br>
                           </div>
                       </td>
                   </tr>
                   <tr>
                       <td class="text_solid" align="center">
                           <input type="radio" value="2" name="right"  id="right" onchange="setChanged()"/>
                       </td>
                       <td class="text_solid">
                           <div style="border: solid 1px black; background: #fff;" align="left" id="f_quest_viewdiv">&nbsp; <br>&nbsp; <br>
                           </div>
                       </td>
                   </tr>
                   <tr>
                       <td class="text_solid" align="center">
                           <input type="radio" value="3" name="right" id="right" onchange="setChanged()"/>
                       </td>
                       <td class="text_solid">
                           <div style="border: solid 1px black; background: #fff;" align="left" id="f_quest_viewdiv">&nbsp; <br>&nbsp; <br>
                           </div>
                       </td>
                   </tr>
                  </table>
                  <br>
               </td>
            </tr>
            <tr>
             <td>
                 
                  <br>
             </td>
            </tr>
            <tr>
             <td align="center">
                 <table width="95%">
                     <tr>
                         <td class="text_solid">
                             << Предыдущий вопрос
                         </td>
                         <td class="text_solid" align="center">
                             Перейти на 
                             <select name="quest_nums" id="quest_nums" onchange="SaveAndGo()">
                             <script>forming_questPages()</script>
                             </select>
                             вопрос
                         </td>
                         <td class="text_solid" align="right">
                             Следующий вопрос >>
                         </td>
                     </tr>
                 </table>
             </td>
            </tr>
        </table>
        </div>
        <!-- Блок Вопроса и Ответов - конец -->
   <br>

</form>   
</body>
</html>


PM MAIL   Вверх
Egik2
Дата 9.12.2010, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 29.7.2008
Где: Агудзера

Репутация: 1
Всего: 11





--------------------
Три великие добродетели программиста: лень, нетерпение и самомнение (Larry Wall)
a-nav.com
developer-blog.ru
world-poetry.org
PM MAIL WWW ICQ   Вверх
Kiti
Дата 9.12.2010, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 29.7.2003

Репутация: нет
Всего: 1



Egik2
при использовании AJAX необходимо будет "блок вопросов и ответов" отображать динамично в каком-нибудь Div-е, верно?
тут возникает другой вопрос:
вопросы и ответы содержат формулы в виде ASCIIMathMl
чтобы ASCIIMathMl отобразить для пользователя в нормальном виде к странице подключены unimath.js и ASCIIMathML.js, которые обработывают содержимое страницы при onload.
Соответственно при отображении  "блок вопросов и ответов" в отдельном div с использованием AJAX не срабатывают скрипты unimath.js и ASCIIMathML.js,
можно ли решить эту проблему?
PM MAIL   Вверх
GreenBerg
Дата 11.12.2010, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 28.11.2010

Репутация: нет
Всего: нет



запускай обработку скриптов unimath.js и ASCIIMathML.js, вручную для новых данных
PM MAIL   Вверх
Kiti
Дата 11.12.2010, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 29.7.2003

Репутация: нет
Всего: 1



GreenBerg
к сожалению не могу :(

решила вопрос фреймами smile
спасибо всем, кто уделил внимание  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0801 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.