|
|
|
| Всем привет)
Есть опросник в нем 5 вопросов, в каждом вопросе 2-3 варианта ответа.
Нужно чтобы ответы пользователя сохранялись и выводились, вконце, перед результатом.
например: вы ответили на первый вопрос (1 вариант)
второй вопрос (3 вариант)
третий вопрос (2 вариант)
и т.д. ..
Делаю так:
<?
/*данные передаются постом через форму*/
// идет форма в форме кажому варианту ответа соответствует число 1, 2 и 3
/*Проверка в обработчике есть*/
if(isset($_POST['vopros1'])){$vopros1 = ($_POST['vopros1']);}
// и т.п.
/*Собсна проверяем переменную и присваеваем ей значание*/
switch ($vopros1)
{
case "$vopros1 == 1":
$vopros1 = "Вариант 1";
break;
case "$vopros1 == 2":
$vopros1 = "Вариант 2";
break;
case "$vopros1 == 3":
$vopros1 = "Вариант 3";
break;
}
/*Вывожу результат*/
echo '$vopros1';
?>
|
Вместо вариантов выводиться название переменной:
Что не правильно, и как сделать?
тему не так назвал, сори) | |
|
|
|
|
|
|
|
для: *m*
(08.06.2009 в 17:55)
| | >Что не правильно, и как сделать?
Не расставлять ненужных кавычек:
<?
$vopros1 = 2;
switch ($vopros1) {
case 1: $vopros1 = "Вариант 1";
break;
case 2: $vopros1 = "Вариант 2";
break;
case 3: $vopros1 = "Вариант 3";
}
/*Вывожу результат*/
echo $vopros1;
|
| |
|
|
|
|
|
|
|
для: sim5
(08.06.2009 в 18:13)
| | >>Что не правильно, и как сделать?
>Не расставлять ненужных кавычек:
и лишних выражений
<?
$vopros1 = 2;
switch ($vopros1) {
case 1: $vopros1 = "Вариант 1";
break;
case 2: $vopros1 = "Вариант 2";
break;
case 3: $vopros1 = "Вариант 3";
}
/*Вывожу результат*/
echo $vopros1;
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.06.2009 в 18:18)
| | Все, укол мимо - я имею привычку (иногда ;-)) проверять потом то, что написал, так как с русским проблемы имеются :) Заметил, что лишнее оставил, убрал :) Но все все равно, признателен ;-) | |
|
|
|
|
|
|
|
для: sim5
(08.06.2009 в 18:13)
| | неожидал от вас)
так правильно:
<?
$vopros1 = 2;
switch ($vopros1) {
case 1: $vopros1 = "Вариант 1";
break;
case 2: $vopros1 = "Вариант 2";
break;
case 3: $vopros1 = "Вариант 3";
}
/*Вывожу результат*/
echo $vopros1;
|
а проще и вовсе так сделать:
<?
$vopros1 = 2;
$vopros1 = 'Вариант '.$vopros1;
/*Вывожу результат*/
echo $vopros1;
|
| |
|
|
|
|
|
|
|
для: nikita2206
(08.06.2009 в 18:19)
| | Экономично конечно, но я не о красивости, а об ошибке, а вы уж можете предлагать все, что угодно. Время есть, пожалуйста. | |
|
|
|
|
|
|
|
для: sim5
(08.06.2009 в 18:13)
| | спасибо исправил, но не работет, никакой результат не возвращается, ничего не выводиться. | |
|
|
|
|
|
|
|
для: *m*
(08.06.2009 в 18:29)
| | Ну это вы не правы. Либо у вас передается не то, чего вы проверяете, либо.... | |
|
|
|
|
|
|
|
для: sim5
(08.06.2009 в 18:47)
| | все перепроверил, собственно в форме 3 значения переменной vopros1 - 1, 2 и 3 ошибки быть не может в форме никакой..
переменная vopros1, точно существует, посколько конструкция if else идет:
<?
/*Если существует массив пост и в нем переменная $vopros1 то задаем второй вопрос*/
if(isset($_POST['vopros1'])){
/*Сюда я вставил конструкцию switch case c вашими поправками*/
$vopros1 = 2;
switch ($vopros1) {
case 1: $vopros1 = "Вариант 1";
break;
case 2: $vopros1 = "Вариант 2";
break;
case 3: $vopros1 = "Вариант 3";
}
?>
// Далее идет форма со вторым вопросом
<?}
// и так далее 5 вопросов
//в конце вывожу переменные:
echo $vopros1;
echo $vopros2;
echo $vopros3;
echo $vopros4;
echo $vopros5;
?>
|
выводиться пустота.. | |
|
|
|
|
|
|
|
для: *m*
(08.06.2009 в 19:20)
| | Ну вы уберите $vopros1 = 2, это ведь для примера, а реально ей нужно присваивать значения из формы.
PS. Кстати, если ваш switch только ради того, чтобы вывести какой выбран вариант, но он таки совсем не нужен тогда. | |
|
|
|
|
|
|
|
для: sim5
(08.06.2009 в 19:24)
| | $vopros1 = $vopros1 то есть так должно получиться?
что то я совсем запутался..
>PS. Кстати, если ваш switch только ради того, чтобы вывести какой выбран вариант, но он таки совсем не нужен тогда.
- почему?
ну я просто решил попробовть эту конструкцию, она вроде как поудобнее для выбора из нескольких вариантов.. | |
|
|
|
|
|
|
|
для: *m*
(08.06.2009 в 19:33)
| | Да ничем это не удобнее, и вот почему. Ваши вопросы, надо полагать, будут хранится в базе, а если и не в базе, то выгоднее держать их в массиве, а получить нужный элемент массива (при соответствующей структуре элементов формы) можно без всякого switch. Ну а, если вам он нужен, то ваши переменные можно так опрделять:
<?
$vopros1 = isset($_POST['vopros1']) ? intval($_POST['vopros1']) : 0;
$vopros2 = isset($_POST['vopros2']) ? intval($_POST['vopros2']) : 0;
//и т.д..
|
| |
|
|
|
|
|
|
|
для: sim5
(08.06.2009 в 19:40)
| | насчет массивов вы опять таки правы, я об этом изначально и думал, заметили как называется тема)), потом вдруг решил попробовать эту конструкцию.
а если не сложно можете написать как бы вы сделали, с помощью массивов?
спасибо. | |
|
|
|
|
|
|
|
для: *m*
(08.06.2009 в 19:46)
| | Я бы вообще никак не делал, так как крайне равнодушно отношусь к различным опросам, голосованиям, тестам и прочей лабуде. )
Коли у вас есть мануал, и ваши вопросы, варианты ответов и прочее, это действительно будут массивы, а не таблица базы данных, то внимательно посмотрите на функции работы с массивами. Я уверен, если вы ясно представляете всю иерархию своих вопросов, а так же то, как будете проверять ответы, плюс информацию для вывода результатов - вы без труда найдете среди этих функций вам нужное.
Попробуйте сперва сами решить эту задачу, так будет полезнее в первую очередь для вас. | |
|
|
|
|
|
|
|
для: sim5
(08.06.2009 в 19:52)
| | если я правильно понимаю, то это должно выглядеть так:
получаем данные из формы, значение переменной заносим в массив.
$vopros1[ ] = "$vopros1";
но как быть с тем что значения переменной числовые, а нужно чтобы выводилась информация соответствующая числовым значениям? | |
|
|
|
|
|
|
|
для: *m*
(08.06.2009 в 22:11)
| |
$list = array("alpha", "bravo", "charlie");
$num = 1;
echo $list[$num];
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.06.2009 в 22:18)
| | так просто)))
перед тем как задать вопрос читал книгу php 5 на примерах.. просто не сообразил)
всем спасибо за помощь, удач) | |
|
|
|
|
|
|
|
для: *m*
(08.06.2009 в 22:38)
| | не с той книги начали.
Лучше бы читали Самоучитель | |
|
|
|
|
|
|
|
для: Trianon
(08.06.2009 в 22:42)
| | ну для вас то вопрос может и пустяковый, а для тех кто только недавно начал изучение, может вызвать затруднение и банальная вещь. | |
|
|
|
|
|
|
|
для: *m*
(09.06.2009 в 12:02)
| | Так я поэтому и написал.
Книга "Самучитель PHP5" тех же авторов Вам будет на данном этапе куда полезнее. | |
|
|
|