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

Форум PHP

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

 

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

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

тема: несколько форм в одном скрипте...

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

 
 автор: testdriver   (30.07.2007 в 22:30)   письмо автору
 
   для: Trianon   (30.07.2007 в 22:16)
 

тоже выход, чего сервер то зря загружать?! пусть вся нагрузка будет на клиенте :)))

   
 
 автор: Trianon   (30.07.2007 в 22:16)   письмо автору
 
   для: testdriver   (30.07.2007 в 21:28)
 

Я Вам больше скажу - можно обойтись вообще без скриптов серверной стороны.

   
 
 автор: Trianon   (30.07.2007 в 22:13)   письмо автору
 
   для: interest_quastion   (30.07.2007 в 21:24)
 

.

<?php
$qtnb 
= array(
   
1=>array('q' =>'кол-во лет?',
    
'a'=> array(1=>'ответ1',2=>'ответ2',3=>'ответ3'))
  ,
2=>array('q' =>'сайты каких тематик вы посещаете?',
    
'a'=> array(1=>'ответ1',2=>'ответ2',3=>'ответ3'))
  ,
3=>array('q' =>'сколько времени вы проводите в интернете?',
    
'a'=> array(1=>'ответ1',2=>'ответ2',3=>'ответ3'))
  ,
4=>array('q' =>'покупаете какие-либо товары через интернет?',
    
'a'=> array(1=>'ответ1',2=>'ответ2',3=>'ответ3'))
  );

$answ = array(1=> 'один'2=> 'другой'3=> 'четвертый');

function 
in($x) {return is_array($x) ? array_map('in'$x): intval($x);}


echo 
'<form action=? method =post>';
$stop 1;
foreach(
$qtnb as $qn => $qtn)
{
    if(isset(
$_POST['ans'][$qn]))
      foreach(
in($_POST['ans'][$qn]) as $k => $v)
      {
        echo 
"<input type=hidden name=ans[$qn][$k] value=$v />\r\n";
        
$sum[$k] = @$sum[$k] + $v;
      }
    else
    {
      echo 
"Вопрос $qn.  {$qtn['q']}<hr>";
      foreach(
$qtn['a'] as $k => $v)
        echo 
"<br/><input type=checkbox name=ans[$qn][$k] value=1 /> "
                
.htmlspecialchars($v)."\r\n";
      echo 
"<br/><input type=submit  value=answer! />\r\n";
      
$stop 0;
      break;
    }
}

echo 
'</form>';
if(
$stop)
{
   
arsort($sum); reset($sum); $k key($sum);
   echo 
"результат ".$answ[$k];
}

?>

   
 
 автор: testdriver   (30.07.2007 в 21:28)   письмо автору
 
   для: interest_quastion   (30.07.2007 в 21:24)
 

Вполне можно без базы данных обойтись.

   
 
 автор: interest_quastion   (30.07.2007 в 21:24)   письмо автору
 
   для: Trianon   (30.07.2007 в 21:15)
 

вопрос 1
кол-во лет?
ответ1
ответ2
ответ3

вопрос 2
сайты каких тематик вы посещаете ?
ответ1
ответ2
ответ3

вопрос 3
сколько времени вы проводите в интернете?
ответ1
ответ2
ответ3

вопрос4
покупаете какие-либо товары через интернет?
ответ1
ответ2
ответ3


Если больше ответов под номером 1, то результат один, если больше ответов под номером 2, то другой, больше под номером 3 - четвертый.

   
 
 автор: Trianon   (30.07.2007 в 21:24)   письмо автору
 
   для: interest_quastion   (30.07.2007 в 21:17)
 

Вы можете нарисовать массив, который бы хранил описание всей базы теста. Если вопросов там и вправду около деcятка, это труда не составит.

   
 
 автор: interest_quastion   (30.07.2007 в 21:17)   письмо автору
 
   для: testdriver   (30.07.2007 в 21:08)
 

Спасибо за алгоритм Valick и совет testdriver'а, но у меня действительно не так много вопросов (~10). Вот я и хочу узнать, как нужно построить конструкцию if..elseif, чтобы все формы показывались поочередно..
Можете написать как так сделать ? Заранее благодарен )

   
 
 автор: Trianon   (30.07.2007 в 21:15)   письмо автору
 
   для: interest_quastion   (30.07.2007 в 20:56)
 

>Это я уже понял, мне нужен только алгоритм, который позволял бы показывать одну форму за другой..

для ответа на этот вопрос Вы привели слишком мало данных.
Нужно знать, как зависят от номера вопроса тексты вопросов, а также поясняющие тексты и количество самих ответов.

Тогда можно было бы говорить об алгоритме, реализовывать который (тут Valick прав) куда проще на БД, чем как-то еще.

   
 
 автор: testdriver   (30.07.2007 в 21:08)   письмо автору
 
   для: interest_quastion   (30.07.2007 в 20:56)
 

Valick предложил не плохой вариант, на мой взгляд более предпочтительный чем ваш. Хотя если у вас вопросов не много предполагается использовать то можно и на файлах сделать, и обойтись без базы данных, тут как вам собственно удобнее.

   
 
 автор: Valick   (30.07.2007 в 21:02)   письмо автору
 
   для: interest_quastion   (30.07.2007 в 20:56)
 

Я бы с базой данных это сделал.
И тестдрайвер прав рациональности маловато.
Я бы сделал форму одну выводящую вопрос по ID, и с каждой формой скрытым полем передавал ID следующего вопроса. На мой взгляд это более универсально.

   

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

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

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