|
|
|
|
|
для: exp
(04.12.2007 в 22:26)
| | чет я вообще запутался, пошел разбираться ))
Спасибо) | |
|
|
|
|
|
|
|
для: Егор (Solar)
(04.12.2007 в 21:00)
| | наверное какие-то вот.такие бывают по логике такие опросы )
<?php
if (!empty($_POST)) {
$ocenki = array(1 => array(10,4,4,4,4), 2 => array(7,2,2,2,7), 5 => array(6,7,7,7,7),
45 => array(7,4,4,4,6), 54 => array(10,0,0,0,2), 65 => array(10,6,2,2,2), 232 => array(10,0,0,0,5),
321 => array(10,4,0,0,5), 545 => array(0,0,0,0,8), 654 => array(5,0,0,6,7));
$ans = array();
function checkpost($str, $key)
{
global $ocenki, $ans;
$str = ($str > 4) ? -1 : (int)$str;
$key = ($key > 1000) ? -1 : (int)$key;
if ($str < 0 || $key < 0) return;
$ans[$key] = $ocenki[$key][$str];
echo 'Вопрос №' . $key . ': ';
if ($ans[$key] >= 5)echo $ans[$key] . ' баллов<hr/>';
else echo 'неоценен<hr/>';
}
array_walk_recursive($_POST, 'checkpost');
print_r($ans);
} else {
?>
<style>
input { margin: 0 20px; }
</style>
<script language="JavaScript">
// вопросы
var vprs = ['почему пароход плавает?',
'зачем птицы летят на юг?',
'сколько будет 2*2?',
'где у електроника кнопка?',
'кем был Карл Маркс с точки зрения кибернетики?',
'за что аборигены съели Кука?',
'для чего на телевидении много рекламы?',
'чем отличается двухмерное от трёхмерного?',
'что входит в состав пороха?',
'почему трава зелёная?'];
// номера вопросов
var id_v = ['1','5','654','65','54','45','321','232','545','2'];
// варианты ответов
var answrs = [['','по воде','по закону архимеда','по морю ходит а по реке плавает','а где плавает?'],
['','за кормами','греться','потомучто они перелётные','чтобы вернуться'],
['','четыре с половиной','пять','не много','будет 2*2'],
['','в голове','её нигде нет','не знаком с таким устройством','стесняюсь ответить'],
['','управляющее реле','датчик','сканер','кибернетик'],
['','из уважения','невкусно готовил','не прошёл фейсконтроль','значит было за что'],
['','способ заработать на эфир','для информирования населения','для красоты','для исследования её влияния на психику'],
['','соразмерностью','размеренностью','размером','углом зрения'],
['','тринитротолуол','ацетон','керосин','уголь'],
['','из-за содержания хлороформа','из-за потребления углекислого газа','смотря какая трава','потомучто']];
</script>
<script language="JavaScript">
function GetField(n) {
var field = document.getElementsByTagName('fieldset')[n];
var txt = '<h2>Вопрос: '+vprs[n]+'</h2>\n';
for(var i=0; i < answrs[n].length; i++)
{
txt += '<input type="radio" name="answer['+id_v[n]+']" value="'+i+'"';
if ( i == 0) txt += ' checked="checked"/>незнаю или нехочу отвечать<br/>\n';
else txt += ' />'+answrs[n][i]+'<br/>\n';
}
if ( n == 9) txt += '<input type="submit" value="диагноз"/>\n';
else txt += '<input type="button" value="следующий" onclick="GetField('+(n+1)+')"/>\n';
field.innerHTML = txt;
return 0;
}
</script>
<body onload="GetField(0)">
<b>ответьте на 10 вопросов</b><br/>
<form action="" method="post">
<fieldset></fieldset>
<fieldset></fieldset>
<fieldset></fieldset>
<fieldset></fieldset>
<fieldset></fieldset>
<fieldset></fieldset>
<fieldset></fieldset>
<fieldset></fieldset>
<fieldset></fieldset>
<fieldset></fieldset>
</form>
</body>
<?php
}
?>
| javascript для экономии места просто | |
|
|
|
|
|
|
|
для: sim5
(04.12.2007 в 19:02)
| | ладно, лучше все же попробовать додуматься самому.
Спасиб вам за затраченное время и усилия =)
В следующий раз буду обращаться с лучше сформулированным запросом) | |
|
|
|
|
|
|
|
для: Егор (Solar)
(04.12.2007 в 18:55)
| | Не знаю, вы уже всех запутали :) Наверное сперва четко определить все условия - если так, то... а если так..., но если так... exp пытался вас понять, видимо не понял, или вернее не получил ответа на вопрос, я тоже самое. | |
|
|
|
|
|
|
|
для: sim5
(04.12.2007 в 18:41)
| | ок... Если забыть о >5 как еще мне можно перебрать или обработать эти результаты после подсчета значения массива?
$psy1 = $r[1];
$psy2 = $r[2];
$psy3 = $r[3];
$psy4 = $r[4];
$psy5 = $r[5];
я просто уже запутался... | |
|
|
|
|
|
|
|
для: Егор (Solar)
(04.12.2007 в 17:59)
| | Чтобы решить функцию, надо найти ее неизвестные. Ваших неизвестных неизвестно. Ну вы условия можете четко описать? Например, есть ли совпадения, узнать достаточно просто - удалить повторяющиеся значения из массива, например. Но правильно ли будет по условию - если повторяющиеся значения, это 6 баллов? К чему такой случай приравнять - к шестому как вы пишите? У вас в ваших if кроме как >5 ничего более нет, а узнать вы хотите массу, а масса серая и расплывчатая какая-то... | |
|
|
|
|
|
|
|
для: sim5
(04.12.2007 в 17:42)
| | >А если есть 2 по 6, это к чему отнести?
Это как? тогда нужно 12 вопросов а их 10 ))
Хотел сделать, что бы все было строго, если какой то из значений больше 5 то выдать соответствующий ответ. Если меньше или все равны выдавать отдельный 6ой вариант ответа... | |
|
|
|
|
|
|
|
для: Егор (Solar)
(04.12.2007 в 17:15)
| | А если есть более пяти, но есть и равные и ... не важно, лишь бы в одном из 10 было более 5? А если есть 2 по 6, это к чему отнести? | |
|
|
|
|
|
|
|
для: sim5
(04.12.2007 в 10:03)
| | Здраствуйте
Я написал уже подробно о том, что хотел сделать. Что бы получить один из главных 5ти результатов, человек должен набрать больше 5 балов по одному из 5 вариантов. Всего вопросов 10. Но мне надо еще выдать человеку 6-ой вариант, в том случаи если ответы не добирают или равны между собой.... и я не знаю как это коректно записать | |
|
|
|
|
|
|
|
для: Егор (Solar)
(04.12.2007 в 08:58)
| | А что означет - если значение набирает по какому то из предложеных 5ти вариант больше 5ти ? Выбор значений от 1 до 5, стоит выбрать из вариантов 4 первых, и один любой отличный от первого, то уже всегда будет больше пяти, если говорить о сумме значений. Что вы хотите учитывать - варианты или их значения? | |
|
|
| |
|