Составить тест а результат отправить на email
Итак начальство поставило задачу:
На сайте разместить тест. По результатам теста должна формироваться таблица и отсылается автору и пользователю на емайлы. Особенность: Каждый вопрос на новой странице. С технической стороны кажется все просто. Создается вопрос при ответе да q1=1 при нет q1=0 при формировании html таблицы if q1==1 то добавляем в таблицу если 0 то след условие. Загвоздки 2: 1) Как сделать каждый вопрос на новой странице 2) Как сделать отправку? (Типо как обратная связь) :help: Помогите пожалста) |
PheleX, какой серверный язык?
|
Серверный? Хз обычный сайт =) Писать на JS думаю
|
Посмотрите в сторону якорей. Страничность это обеспечит и будете в меньшей степени зависеть от серверной части. Очевидно, думаю вы понимаете, что сверять ответы необходимо будет все же на сервере, иначе такой тест со 100% верность пройдет каждый.
|
Цитата:
Цитата:
- делать на каждый вопрос свою страничку - делать все вопросы на одной странице, а при перезагрузке показывать нужный вопрос - хранить вопросы в скрипте и показывать нужный |
Вот не знаю... как оправлять а как можно?
Хранить в скрипте как? |
PheleX,
По здравой логике, вы должны получать ответ клиента, маркировать его идентификатором теста, номером вопроса, идентификатором отвечающего и складывать их в базе. Как тест будет пройден переходить к скрипту, который проверит ответы и покажет результаты. Для чего тут может понадобиться JS? Ни для чего. Но вы конечно можете его сюда понапихать, например: - листать страницы теста, - отправлять сообщения на сервер с ответами пользователя, - отправить сообщение, что пользователь прошел тест, - не слать ответы пользователя каждый раз, а собрать их в массив и отправить единожды по окончании теста (единственная разумная причина). |
Объясняю сюжет теста:
Человек отвечает на вопросы (они не могут быть правильные или неправильные) "Слушаете ли вы музыку?" например. Отвечает на все вопросы. Формируется Таблица: "Если слушает музыку то добавляется строка "музыкант", если нет то ничего не добавляется. Результативная таблица должна быть получена человеком который заполнял и владельцем сайта(С подписью емайла клиента). |
Цитата:
Цитата:
|
PheleX,
ок, и что вы теперь хотите? Письма слать можно серверными методами. Вам нужно собрать набор ответов пользователя и передать их серверному методу, который отправит письма. Можно обойтись без js. Решите как будете хранить ответы, либо на клиенте в массиве (тогда нужен js), либо в базе на сервере (js не нужен совесем). Еще какие могут быть вопросы? |
Судя по вашему сообщению, вы ну совсем не знаете javascript.
Освойте основы языка и вопрос отпадет сам, полностью или частично. А с чем не справитесь - поможем. На сайте javascript можно начать изучать с учебника, раздел Основы javascript. Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/ Задавайте конкретные вопросы по ходу дела. ------------ Это ваш случай. |
Спасибо, вернемся к этой теме позже.
|
Проблема вызова
function funk() { v1=0;v2=0;v3=0;v4=0;v5=0;v6=0; s=0; var d=document; DispWin=window.open("","NewWin","status=no,width=3 00,height=200"); DispWin.document.write("Ваши потребности<BR>"); if(d.Test_Tarif.otv1[1].checked==true) {DispWin.document.write("Постановка отдела продаж " +v1+ "<BR>");s=s+v1}; if(d.Test_Tarif.otv2[1].checked==true) {DispWin.document.write("Тренинг для руководителей " +v2+ "<BR>");s=s+v2}; if(d.Test_Tarif.otv3[1].checked==true) {DispWin.document.write("Коллайдер управляемых продаж " +v3+ "<BR>");s=s+v3}; if(d.Test_Tarif.otv4[1].checked==true) {DispWin.document.write("Формирование КП " +v4+ "<BR>");s=s+v4}; if(d.Test_Tarif.otv5[1].checked==true) {DispWin.document.write("Фирменный стиль " +v5+ "<BR>");s=s+v5}; if(d.Test_Tarif.otv6[1].checked==true) {DispWin.document.write("Сопровождени " +v6+ "<BR>");s=s+v6}; DispWin.document.write("Итого: "+s+""); } </Script> Вызов <form name="Test_Tarif"> <h4>1. Есть ли у вас Отдел Продаж?<p></h4> 1.<input type="radio" name="otv1">Да<br> 2.<input type="radio" name="otv1"> Нет<br> <h4>Проходили ли вы тренинги?<p></h4> 1.<input type="radio" name="otv2">Да<br> 2.<input type="radio" name="otv2">Нет<br><br> <h4>Есть ли у вас Маркетологи?<p></h4> 1.<input type="radio" name="otv3">Да<br> 2.<input type="radio" name="otv3">Нет<br><br> <h4>Нужна ли вам помощь в создании Коммерческого Предложения<p></h4> 1.<input type="radio" name="otv4">Нет<br> 2.<input type="radio" name="otv4">Да<br><br> <h4>Есть ли у вас свой Фирменный Стиль?<p></h4> 1.<input type="radio" name="otv5">Да<br> 2.<input type="radio" name="otv5">Нет<br><br> <h4>Требуется ли вам постоянная помощь БТ?<p></h4> 1.<input type="radio" name="otv6">Нет<br> 2.<input type="radio" name="otv6">Да<br><br> </form> <input type="button" name="s4et" value="Подсчитать" onclick="funk(Test_Tarif)"> не работает, почему не могу понять =\ |
Цитата:
Вместо этого d.Test_Tarif.otv1[1].checked Используй document.getElementsByName('otv1')[1].checked P.S. Ты вкурсе что в JS первый элемент массива имеет индекс 0, ане 1? :) |
Цитата:
|
Эти переменные заполняются позже и они постоянные. в принципе можно их и не глобальными сделать а локальными. Проблема в этом?
Да вкурсе что первый элемент массива 0, но я хочу вариант ответа 2) А не работает в целом, не создает окно |
И все же почему не создается окно?
|
Цитата:
<!DOCTYPE html> <html> <head> <title>test</title> <style type="text/css"> </style> <script type="text/javascript"> function funk() { v1=0;v2=0;v3=0;v4=0;v5=0;v6=0; s=0; var d=document; DispWin=window.open("","NewWin","status=no,width=300px,height=200px"); DispWin.document.write("Ваши потребности<BR>"); if(document.getElementsByName('otv1')[1].checked) { DispWin.document.write("Постановка отдела продаж " +v1+ "<BR>"); s=s+v1 }; if(document.getElementsByName('otv2')[1].checked) { DispWin.document.write("Тренинг для руководителей " +v2+ "<BR>") ;s=s+v2 }; if(document.getElementsByName('otv2')[1].checked) { DispWin.document.write("Коллайдер управляемых продаж " +v3+ "<BR>"); s=s+v3 }; if(document.getElementsByName('otv3')[1].checked) { DispWin.document.write("Формирование КП " +v4+ "<BR>"); s=s+v4 }; if(document.getElementsByName('otv4')[1].checked) { DispWin.document.write("Фирменный стиль " +v5+ "<BR>"); s=s+v5 }; if(document.getElementsByName('otv5')[1].checked) { DispWin.document.write("Сопровождени? ? " +v6+ "<BR>"); s=s+v6 }; DispWin.document.write("Итого: "+s+""); } </script> </head> <body> <form name="Test_Tarif"> <h4>1. Есть ли у вас Отдел Продаж?<p></h4> 1.<input type="radio" name="otv1">Да<br> 2.<input type="radio" name="otv1"> Нет<br> <h4>Проходили ли вы тренинги?<p></h4> 1.<input type="radio" name="otv2">Да<br> 2.<input type="radio" name="otv2">Нет<br><br> <h4>Есть ли у вас Маркетологи?<p></h4> 1.<input type="radio" name="otv3">Да<br> 2.<input type="radio" name="otv3">Нет<br><br> <h4>Нужна ли вам помощь в создании Коммерческого Предложения<p></h4> 1.<input type="radio" name="otv4">Нет<br> 2.<input type="radio" name="otv4">Да<br><br> <h4>Есть ли у вас свой Фирменный Стиль?<p></h4> 1.<input type="radio" name="otv5">Да<br> 2.<input type="radio" name="otv5">Нет<br><br> <h4>Требуется ли вам постоянная помощь БТ?<p></h4> 1.<input type="radio" name="otv6">Нет<br> 2.<input type="radio" name="otv6">Да<br><br> <input type="button" name="s4et" value="Подсчитать" onclick="funk(Test_Tarif)"> </form> </body> </html> |
Скажи мыло я тебе страничку скину написанную полностью.
|
Цитата:
|
Посмотреть) В ней и другие JS есть прост
|
Цитата:
1000р шли и начнём смотреть твоию страничку... |
Спасибо за неоценимую помощь...
|
Часовой пояс GMT +3, время: 22:07. |