Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Составить тест а результат отправить на email (https://javascript.ru/forum/dom-window/18371-sostavit-test-rezultat-otpravit-na-email.html)

PheleX 28.06.2011 08:56

Составить тест а результат отправить на email
 
Итак начальство поставило задачу:
На сайте разместить тест. По результатам теста должна формироваться таблица и отсылается автору и пользователю на емайлы.
Особенность: Каждый вопрос на новой странице.
С технической стороны кажется все просто.
Создается вопрос при ответе да q1=1 при нет q1=0
при формировании html таблицы if q1==1 то добавляем в таблицу если 0 то след условие.
Загвоздки 2:
1) Как сделать каждый вопрос на новой странице
2) Как сделать отправку? (Типо как обратная связь)

:help: Помогите пожалста)

ksa 28.06.2011 09:39

PheleX, какой серверный язык?

PheleX 28.06.2011 10:27

Серверный? Хз обычный сайт =) Писать на JS думаю

da_ff 28.06.2011 10:57

Посмотрите в сторону якорей. Страничность это обеспечит и будете в меньшей степени зависеть от серверной части. Очевидно, думаю вы понимаете, что сверять ответы необходимо будет все же на сервере, иначе такой тест со 100% верность пройдет каждый.

ksa 28.06.2011 10:59

Цитата:

Сообщение от PheleX
Писать на JS думаю

А как тогда будешь письма отправлять? :)

Цитата:

Сообщение от PheleX
Как сделать каждый вопрос на новой странице

Если все страницы статичны:
- делать на каждый вопрос свою страничку
- делать все вопросы на одной странице, а при перезагрузке показывать нужный вопрос
- хранить вопросы в скрипте и показывать нужный

PheleX 28.06.2011 11:25

Вот не знаю... как оправлять а как можно?
Хранить в скрипте как?

da_ff 28.06.2011 11:42

PheleX,
По здравой логике, вы должны получать ответ клиента, маркировать его идентификатором теста, номером вопроса, идентификатором отвечающего и складывать их в базе. Как тест будет пройден переходить к скрипту, который проверит ответы и покажет результаты.

Для чего тут может понадобиться JS? Ни для чего. Но вы конечно можете его сюда понапихать, например:
- листать страницы теста,
- отправлять сообщения на сервер с ответами пользователя,
- отправить сообщение, что пользователь прошел тест,
- не слать ответы пользователя каждый раз, а собрать их в массив и отправить единожды по окончании теста (единственная разумная причина).

PheleX 28.06.2011 12:17

Объясняю сюжет теста:
Человек отвечает на вопросы (они не могут быть правильные или неправильные) "Слушаете ли вы музыку?" например.
Отвечает на все вопросы.
Формируется Таблица: "Если слушает музыку то добавляется строка "музыкант", если нет то ничего не добавляется.
Результативная таблица должна быть получена человеком который заполнял и владельцем сайта(С подписью емайла клиента).

ksa 28.06.2011 12:23

Цитата:

Сообщение от PheleX
как оправлять а как можно?

Формировать письмо на сервере и отправлять используя настройки почтового сервера...

Цитата:

Сообщение от PheleX
Хранить в скрипте как?

Завести массив вопросов и ответов... Заполнить его данными... А на самой страничке выводить нужный.

da_ff 28.06.2011 12:25

PheleX,
ок, и что вы теперь хотите?

Письма слать можно серверными методами. Вам нужно собрать набор ответов пользователя и передать их серверному методу, который отправит письма. Можно обойтись без js. Решите как будете хранить ответы, либо на клиенте в массиве (тогда нужен js), либо в базе на сервере (js не нужен совесем).

Еще какие могут быть вопросы?

trikadin 28.06.2011 18:47

Судя по вашему сообщению, вы ну совсем не знаете javascript.

Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.

На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/

Задавайте конкретные вопросы по ходу дела.


------------
Это ваш случай.

PheleX 30.06.2011 08:59

Спасибо, вернемся к этой теме позже.

PheleX 30.06.2011 09:17

Проблема вызова
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)">

не работает, почему не могу понять =\

ksa 30.06.2011 10:11

Цитата:

Сообщение от PheleX
не работает, почему не могу понять

Что именно не работает? :)

Вместо этого
d.Test_Tarif.otv1[1].checked

Используй
document.getElementsByName('otv1')[1].checked


P.S.
Ты вкурсе что в JS первый элемент массива имеет индекс 0, ане 1? :)

ksa 30.06.2011 10:13

Цитата:

Сообщение от PheleX
v1=0;v2=0;v3=0;v4=0;v5=0;v6=0; s=0;

Для чего такое количество глобальных переменных? :blink:

PheleX 01.07.2011 07:05

Эти переменные заполняются позже и они постоянные. в принципе можно их и не глобальными сделать а локальными. Проблема в этом?
Да вкурсе что первый элемент массива 0, но я хочу вариант ответа 2)
А не работает в целом, не создает окно

PheleX 01.07.2011 07:09

И все же почему не создается окно?

ksa 01.07.2011 08:48

Цитата:

Сообщение от PheleX
И все же почему не создается окно?

Всё там создаётся...

<!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>

PheleX 01.07.2011 12:51

Скажи мыло я тебе страничку скину написанную полностью.

ksa 01.07.2011 12:54

Цитата:

Сообщение от PheleX
я тебе страничку скину написанную полностью

Зачем она мне? :blink:

PheleX 01.07.2011 15:18

Посмотреть) В ней и другие JS есть прост

ksa 01.07.2011 15:35

Цитата:

Сообщение от PheleX
Посмотреть

Кабы ты бабу голую прислал "посмотреть"... :lol:

1000р шли и начнём смотреть твоию страничку...

PheleX 04.07.2011 12:59

Спасибо за неоценимую помощь...


Часовой пояс GMT +3, время: 22:07.