Я строю своего рода викторину. Пример HTML:
<div class="panel qContainer">
<ol id="left">
<li>
Question1:<br/>
<input type="radio" value="1A" name="SortingQ1" />1A
<input type="radio" value="1B" name="SortingQ1" />1B
<input type="radio" value="1C" name="SortingQ1" />1C
</li>
<li>
Question2:<br/>
<input type="radio" value="2A" name="SortingQ2" />2A
<input type="radio" value="2B" name="SortingQ2" />2B
<input type="radio" value="2C" name="SortingQ2" />2C
<input type="radio" value="2D" name="SortingQ2" />2D
<input type="radio" value="2E" name="SortingQ2" />2E
</li>
</ol>
<input type="button" id="button" value="submit" />
</div>
Для расчета результата есть 5 переменных: sL, sK, sA, sG, sB.
Каждый ответ дает числовое значение этим переменным. Пример:
1A = sL + 4, sK + 1, sA + 2, sG + 5, sB + 3
При отправке все значения должны быть сложены, и в результате будет возвращена переменная с наибольшим номером.
Мои вопросы будут:
как правильно вызвать действие вычисления / отправки значений?
как принимать только выбранные входные значения?
как рассчитать результат?
Что касается результата, я думаю, что проще всего было бы с простыми утверждениями IF:
$x = ''; //value from input, not sure how to initialise it
if ($x == '1A'){
$sL=+4;
$sK=+1;
$sA=+2;
$sG=+5;
$sB=+3;
}
Конечно, я не уверен, что PHP выполняет такую логику вычислений. Может быть, Javascript будет проще? Хотя бы сделать сам расчет. Это довольно просто с JS. Я рассматриваю PHP, потому что результат будет применен к полю базы данных пользователя.
Любые предложения приветствуются!
Дайте мне знать, если у вас есть какие-либо вопросы.
(Эта форма будет использоваться в среде phpBB)
Вот простой пример моей идеи:
Тест Какое ты животное?
Возможные результаты: R1 = лев; R2 = пингвин;
Вопрос1 будет: «Вы едите мясо?»
1A - Да (R1 = + 1; R2 = + 0);
1B - Нет (R1 = + 0; R2 = + 1);
Вопрос2 будет звучать так: «Тебе нравится холод или жара?»
2А - Холодный (R1 = + 0; R2 = + 1);
2B - Обогрев (R1 = + 1; R2 = + 0);
После того, как переменные ответа суммированы, возвращается результат с более высокой суммой (лев ИЛИ пингвин)