Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод нескольких рандомных элементов массива php по одному (а не сразу все) + кликабельные варианты ответов.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Хомяк
Отправлено: 08 Июня, 2018 - 20:16:59
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Июнь 2018  


Помог: 0 раз(а)




Есть php код, который из 5-ти элементов выбирает три. Но выводит на экран сразу все три элемента, а варианты выводит списком. Хотелось бы, чтобы каждый вопрос выводился отдельно: то есть выбирается первый рандомный появляется на экране, пользователь выбирает один вариант ответа и переходит к следующему.

Так вот, как сделать такой повопросный вывод и кликабельные варианты ответов?

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $arStrings = array(
  4.     array('question' => 'Вопрос 1', 'answers' => array('Ответ 1', 'Ответ 2', 'Ответ 3'), 'right' => 0),
  5.     array('question' => 'Вопрос 2', 'answers' => array('Ответ 1', 'Ответ 2', 'Ответ 3'), 'right' => 2),
  6.     array('question' => 'Вопрос 3', 'answers' => array('Ответ 1', 'Ответ 2', 'Ответ 3'), 'right' => 1),
  7.     array('question' => 'Вопрос 4', 'answers' => array('Ответ 1', 'Ответ 2', 'Ответ 3'), 'right' => 2),
  8.     array('question' => 'Вопрос 5', 'answers' => array('Ответ 1', 'Ответ 2', 'Ответ 3'), 'right' => 0),
  9. );
  10. $arUsed = array();
  11.  
  12. for($i = 0; $i < 3; $i++) {
  13.     do
  14.     {
  15.         $id = rand(0, count($arStrings)-1);
  16.     } while(in_array($id, $arUsed));
  17.     $arUsed[] = $id;
  18.  
  19.     ?>
  20.     <h2>Очередной вопрос: <?PHP echo $arStrings[$id]['question']; ?></h2>
  21.     <p>Варианты ответов:</p>
  22.     <ul>
  23.         <?PHP for($j = 0; $j < count($arStrings[$id]['answers']); $j++) { ?>
  24.         <li <?PHP if($arStrings[$id]['right'] == $j) echo 'class="right"'; ?>><?PHP echo $arStrings[$id]['answers'][$j]; ?></li>
  25.         <?PHP } ?>
  26.     </ul>
  27.     <?PHP
  28. }
  29. ?>
 
 Top
andrewkard
Отправлено: 08 Июня, 2018 - 22:22:00
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Вам нужно форму сделать с ответами, которую пользователь отправит на сервер, и Вы ему в обратку отдадите новый вопрос. И еще хорошим тоном является сразу отметить, правильный ли ответ, для этого сделайте аякс запрос на сервер с ответом и верните ответ: да, нет, и как то отобразите результат пользователю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB