Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 01.07.2015, 19:26
Интересующийся
Отправить личное сообщение для Fotinia Посмотреть профиль Найти все сообщения от Fotinia
 
Регистрация: 01.07.2015
Сообщений: 15

Посмотрите как работает вложение. Это все что мне нужно
Вложения:
Тип файла: zip Mfu1.zip (46.9 Кб, 0 просмотров)
Ответить с цитированием
  #22 (permalink)  
Старый 01.07.2015, 20:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вы знаете как передается форма? Это будет массив, ключами которого являются имена полей, а значениями их значения. То есть, испытуемый может и не вводить на какие либо задачи вариант ответа, а значит и сервер просто может не проверять такие задачи. Это к тому, что требование сделать кнопку проверить для каждой задачи ОТДЕЛЬНО не имеет под собой никакого оправдания, а только лишь неудобство для клиента.

Сообщение от Fotinia
В тесте 4 задания, в которых нужно выбрать правильный вариант.
Значит проверять нужно на сервере - отправляйте форму, проверяйте, что на сервере можно сделать очень просто - по ключу и индексам полей в который вводится вариант, в массиве, который содержит для каждого индекса этого ключа номер верного варианта. То есть сравнение принятого значения со со значением в массиве.

Возвращая результат теста, в задачах с правильными ответами помещать тег IMG, которого изначально в форме нет. Вот и все, JS тут боком.

Я не работаю репетиром, но знаю, что ваш подход к тесту не верный.
Ответить с цитированием
  #23 (permalink)  
Старый 01.07.2015, 20:14
Интересующийся
Отправить личное сообщение для Fotinia Посмотреть профиль Найти все сообщения от Fotinia
 
Регистрация: 01.07.2015
Сообщений: 15

Причем здесь репетитор. Мне не понятно почему в маленьком файле работает как мне надо, а на сайте нет. Простите, за беспокойство. Но у меня не достаточно квалификации, чтобы понять то, что вы мне пишете. Если не можете помочь конкретно,давайте закончим беседу. А то вы мне объясняете как правильно тест делать, а меня вопрос программирование интересует. Я не знаю про какие массивы вы говорите.
Ответить с цитированием
  #24 (permalink)  
Старый 01.07.2015, 20:50
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Fotinia,
Покажите инет версию тестовой страницы с проблемой
Ответить с цитированием
  #25 (permalink)  
Старый 01.07.2015, 20:51
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<?php
//если пришла форма, проверка вариантов
//выбираем только те задачи, на которые есть варианты ответа
if($_POST AND $chk = array_diff(array_map('intval', $_POST['check1']), array(0))) {
    //если $chk не пустой, значит есть варианты ответов
    //массив правильных ответов, 
    //первичный клоюч массива определяет страницы с задачиами вариантов, то есть Вариант 1 и т.д.
    //номер страниц вариантов присоедняется к имени поля ввода варинта ответа
    //а индексы вложенных ключей равны индексам полей
    $checked = array(
        //правильные ответы для страницы "Варианты 1"
        'check1' => array(1=>2, 3, 3, 1 , 2, 4)         
    );
    //идентификатор ключа страницы
    $key = key($_POST);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<form method="post" autocomplete="off">
<div>
<p>Задача 1</p>
<?=$chk && array_key_exists(1, $chk) ? ($chk[1]==$checked[$key][1] ? '<p>Верно</p>' : '<p>Не верно</p>') : null?>
<input name="check1[1]" />
</div>
<div>
<p>Задача 2</p>
<?=$chk && array_key_exists(2, $chk) ? ($chk[2]==$checked[$key][2] ? '<p>Верно</p>' : '<p>Не верно</p>') : null?>
<input name="check1[2]" />
</div>
<div>
<p>Задача 3</p>
<?=$chk && array_key_exists(3, $chk) ? ($chk[3]==$checked[$key][3] ? '<p>Верно</p>' : '<p>Не верно</p>') : null?>
<input name="check1[3]" />
</div>
<div>
<p>Задача 4</p>
<?=$chk && array_key_exists(4, $chk) ? ($chk[4]==$checked[$key][4] ? '<p>Верно</p>' : '<p>Не верно</p>') : null?>
<input name="check1[4]" />
</div>
<div>
<p>Задача 5</p>
<?=$chk && array_key_exists(5, $chk) ? ($chk[5]==$checked[$key][5] ? '<p>Верно</p>' : '<p>Не верно</p>') : null?>
<input name="check1[5]" />
</div>
<div>
<p>Задача 6</p>
<?=$chk && array_key_exists(6, $chk) ? ($chk[6]==$checked[$key][6] ? '<p>Верно</p>' : '<p>Не верно</p>') : null?>
<input name="check1[6]" />
</div>
<br /><br />
<button>Проверить</button>
</form>
</body>
</html>


Загрузите на сервер этот пример под любым именем и выполните. Форма одна, но проверятся будут только те "задачи", на которые есть варианты ответов. Не нужно кучи форм!

Проверять должен сервер, а проверяется просто - по ключам и индексам. Какое отношение к этой проверке имеет JS?

Только содержимое таких страниц, сами задачи, нужно выводить в цикле и в нем же делать проверку, а не прописывать многократно код.

Все, более я не знаю как вам пояснить то, что вы не с того требуете результат - с клиента.
Ответить с цитированием
  #26 (permalink)  
Старый 01.07.2015, 23:13
Интересующийся
Отправить личное сообщение для Fotinia Посмотреть профиль Найти все сообщения от Fotinia
 
Регистрация: 01.07.2015
Сообщений: 15

Dell, вотссылка на страницу
http://mathforyou.ru/7klass/7klassDud.php?t1=1
Ответить с цитированием
  #27 (permalink)  
Старый 01.07.2015, 23:24
Интересующийся
Отправить личное сообщение для Fotinia Посмотреть профиль Найти все сообщения от Fotinia
 
Регистрация: 01.07.2015
Сообщений: 15

laimas, огромное спасибо за код. Это почто то, что мне нужно. А вы не можете показать, как вводить значение по нажатию кнопки ПРОВЕРИТЬ рядом с каждым полем ввода (только для одного варианта) и чтобы вместо ответа Приавильно, появилась картинка (любая) Я сама настрою нужную. Огромное спасибо за ответ!
Ответить с цитированием
  #28 (permalink)  
Старый 02.07.2015, 04:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Fotinia
Я много лет работаю репетиром и мне так нужно, да и не аналогичных ресурсах так делают. Отдельно проверка каждого вопроса.
А для того, чтобы сделать нужное для себя обязательно смотреть как сделано на других ресурсах? Я, например, думаю так - мне нужно вот это, которое будет соответствовать моим целям, для этого надо создать А, Б..., а клиенту, то есть ученику, было удобно и чтобы проверка каждой задачи не приводила к отправке формы, что может привести любого учащегося в бешенство.

Вы ведь так и не сказали ни слова о целях этого теста, но много конкретики о кнопках, картинках и прочем, что без цели является чем-то оторванным от реалий.

Если бы я был репетитором, а это оплата моих услуг, а значит тест, это проверка знаний подопечных, а не запросы клиента в никуда, и проверяются знания исключительно сервером, то:

1) сервер имеет в базе таблицу задач, каждая из которых под уникальным идентификатором (номером), а также распределены, например, по разделам математики, по которым динамически строится меню выбора задач, и соответственно выводятся страницы этих задач

2) в базе также хранятся и данные моих подопечных, под уникальными идентификаторами

3) варианты ответов также запоминаются в базе, в таблице теста, в которую пишутся - идентификатор отвечающего, идентификатор задачи, вариант ответа на задачу, дата и время ответа.

4) руки чешутся иметь у каждой задачи кнопку "Проверить", значит чтобы не бесить подопечных, делаем проверку ответа с использованием Ajax

5) результаты теста из таблицы тестов доступны для просмотра и мне, репетитору, и всем подопечным, с разницей в том, что я могу просматривать результаты всех и давать им оценку, а подопечные могут видеть только результаты своего теста.

И только после этого решаем вопросы вывода меню, страниц, кнопочек и плюшечек различных. Из этого и будут распределятся роли - от 1 до 5, это сервер, а клиентский JS только в 4, и только сделать асинхронный запрос по отправке варианта ответа, получить результат проверки и отобразить его.

У вас же все уперлось в кнопочки и картиночки, а что, зачем и почему не понятно. А на них можно дать 1000 и один вариант как сделать, но без гарантии того, что это в конечном итоге и нужно будет.

Последний раз редактировалось laimas, 02.07.2015 в 04:45.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик click вызывается несколько раз или не всегда вызывается OlegJquery jQuery 2 21.07.2011 20:37
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
как правильно установить обработчик onclick? Yurik AJAX и COMET 6 14.04.2009 21:04
Изменение onClick из Javascript Александр Events/DOM/Window 5 01.05.2008 16:44