Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: проблема с обработкой...

Сообщения:  [1-10]    [11-20]   [21-30]  [31-32] 

 
 автор: Егор (Solar)   (04.12.2007 в 22:39)   письмо автору
 
   для: exp   (04.12.2007 в 22:26)
 

чет я вообще запутался, пошел разбираться ))
Спасибо)

   
 
 автор: exp   (04.12.2007 в 22:26)   письмо автору
 
   для: Егор (Solar)   (04.12.2007 в 21:00)
 

наверное какие-то вот.такие бывают по логике такие опросы )
<?php
if (!empty($_POST)) {

$ocenki = array(=> array(10,4,4,4,4),  => array(7,2,2,2,7),  => 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) ? -: (int)$str;
    
$key = ($key 1000) ? -: (int)$key;
    if (
$str || $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 для экономии места просто

   
 
 автор: Егор (Solar)   (04.12.2007 в 21:00)   письмо автору
 
   для: sim5   (04.12.2007 в 19:02)
 

ладно, лучше все же попробовать додуматься самому.
Спасиб вам за затраченное время и усилия =)
В следующий раз буду обращаться с лучше сформулированным запросом)

   
 
 автор: sim5   (04.12.2007 в 19:02)   письмо автору
 
   для: Егор (Solar)   (04.12.2007 в 18:55)
 

Не знаю, вы уже всех запутали :) Наверное сперва четко определить все условия - если так, то... а если так..., но если так... exp пытался вас понять, видимо не понял, или вернее не получил ответа на вопрос, я тоже самое.

   
 
 автор: Егор (Solar)   (04.12.2007 в 18:55)   письмо автору
 
   для: sim5   (04.12.2007 в 18:41)
 

ок... Если забыть о >5 как еще мне можно перебрать или обработать эти результаты после подсчета значения массива?

$psy1 = $r[1];
$psy2 = $r[2];
$psy3 = $r[3];
$psy4 = $r[4];
$psy5 = $r[5];

я просто уже запутался...

   
 
 автор: sim5   (04.12.2007 в 18:41)   письмо автору
 
   для: Егор (Solar)   (04.12.2007 в 17:59)
 

Чтобы решить функцию, надо найти ее неизвестные. Ваших неизвестных неизвестно. Ну вы условия можете четко описать? Например, есть ли совпадения, узнать достаточно просто - удалить повторяющиеся значения из массива, например. Но правильно ли будет по условию - если повторяющиеся значения, это 6 баллов? К чему такой случай приравнять - к шестому как вы пишите? У вас в ваших if кроме как >5 ничего более нет, а узнать вы хотите массу, а масса серая и расплывчатая какая-то...

   
 
 автор: Егор (Solar)   (04.12.2007 в 17:59)   письмо автору
 
   для: sim5   (04.12.2007 в 17:42)
 

>А если есть 2 по 6, это к чему отнести?
Это как? тогда нужно 12 вопросов а их 10 ))

Хотел сделать, что бы все было строго, если какой то из значений больше 5 то выдать соответствующий ответ. Если меньше или все равны выдавать отдельный 6ой вариант ответа...

   
 
 автор: sim5   (04.12.2007 в 17:42)   письмо автору
 
   для: Егор (Solar)   (04.12.2007 в 17:15)
 

А если есть более пяти, но есть и равные и ... не важно, лишь бы в одном из 10 было более 5? А если есть 2 по 6, это к чему отнести?

   
 
 автор: Егор (Solar)   (04.12.2007 в 17:15)   письмо автору
 
   для: sim5   (04.12.2007 в 10:03)
 

Здраствуйте
Я написал уже подробно о том, что хотел сделать. Что бы получить один из главных 5ти результатов, человек должен набрать больше 5 балов по одному из 5 вариантов. Всего вопросов 10. Но мне надо еще выдать человеку 6-ой вариант, в том случаи если ответы не добирают или равны между собой.... и я не знаю как это коректно записать

   
 
 автор: sim5   (04.12.2007 в 10:03)   письмо автору
 
   для: Егор (Solar)   (04.12.2007 в 08:58)
 

А что означет - если значение набирает по какому то из предложеных 5ти вариант больше 5ти ? Выбор значений от 1 до 5, стоит выбрать из вариантов 4 первых, и один любой отличный от первого, то уже всегда будет больше пяти, если говорить о сумме значений. Что вы хотите учитывать - варианты или их значения?

   

Сообщения:  [1-10]    [11-20]   [21-30]  [31-32] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования