Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2017, 07:10   #1
mindchamber
 
Регистрация: 28.03.2017
Сообщений: 7
Вопрос [РЕШЕНО] php опрос (нубский вопрос)

Всем привет. Хочу сделать скрипт опроса одним файлом, но почему-то переменная $result всегда обнуляется, когда переходишь к следующему вопросу. Как реализовать, чтобы инкремента работала должным образом?

Вот код:
Код:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <link rel="stylesheet" href="style.css" type="text/css" />
    <title>Страница</title>
</head>


<?php
$capital = $_REQUEST['capital'];
$sun = $_REQUEST['sun'];
$bra = $_REQUEST['bra'];
$result = 0;

// Вопрос про столицу рашки
if ($capital == "Москва") {

     $result += 1;
    $_REQUEST['doGo'] == "Next2";
}
elseif ($capital != "Москва")
    $_REQUEST['doGo'] == "Next2";

// Вопрос про солнце
if ($sun == "Да") {
    $result += 1;
    $_REQUEST['doGo'] == "Next3";
}
elseif ($sun != "Да")
    $_REQUEST['doGo'] == "Next3";

// Вопрос про бразилию
if ($bra == "Бразилиа") {
    $result += 1;
    $_REQUEST['doGo'] == "Finish";
}
elseif ($bra != "Сан-Паулу")
    $_REQUEST['doGo'] == "Finish";

?>
<?php if (!isset ($_REQUEST['doGo'])) {?>
<form action="<?=$_SERVER['SCRIPT_NAME']?>">
<?php echo $result . "<br>"; ?>
 Логин: <input type="submit" name="doGo" value="Жми!">
</form>
<?php } if ($_REQUEST['doGo'] == "Жми!") { ?>
<form action="<?=$_SERVER['SCRIPT_NAME']?>">
    <div class="element">
        <?php echo "$result"; ?>
        <p><strong>Вопрос №1:</strong> Столица России</p>
        <p><input type="radio" name="capital" value="Санкт-Петербург"> Санкт-Петербург</p>
        <p><input type="radio" name="capital" value="Париж"> Париж</p>
        <p><input type="radio" name="capital" value="Москва"> Москва</p>
        <p><input type="radio" name="capital" value="Киев"> Киев</p>
    </div>
    <input type="submit" name="doGo" value="Next" />
</form>
<?php } if ($_REQUEST['doGo'] == "Next") { ?>
<form action="<?=$_SERVER['SCRIPT_NAME']?>">
    <div class="element">
        <?php echo "$result"; ?>
        <p><strong>Вопрос №2:</strong>Солнце это звезда?</p>
        <p><input type="radio" name="sun" value="Да">Да</p>
        <p><input type="radio" name="sun" value="Нет">Нет</p>
    </div>
    <input type="submit" name="doGo" value="Next2" />
</form>

<?php } if ($_REQUEST['doGo'] == "Next2") { ?>
<form action="<?=$_SERVER['SCRIPT_NAME']?>">
    <div class="element">
        <?php echo "$result"; ?>
        <p><strong>Вопрос №3:</strong>Столица Бразилии</p>
        <p><input type="radio" name="bra" value="Бразилиа">Бразилиа</p>
        <p><input type="radio" name="bra" value="Сан-Паулу">Сан-Паулу</p>
    </div>
    <input type="submit" name="doGo" value="Finish" />
</form>

<?php } if ($_REQUEST['doGo'] == "Finish") { ?>

<?php echo $result; ?>

<?php } ?>
И еще я не понимаю расстановки кавычек в этом примере.

Код:
......<?php if (!isset ($_REQUEST['doGo'])) {?>
<form action="<?=$_SERVER['SCRIPT_NAME']?>">
<?php echo $result . "<br>"; ?>
 Логин: <input type="submit" name="doGo" value="Жми!">
</form>
<?php } ...........
Почему их надо ставить именно таким образом? Из этих кавычек строится цепочка, которая не дает вывести все сообщения одним махом? Я все правильно понял? Как такой способ постановки кавычек называется? Спасибо за ответы, пхп изучаю по книге Котерова.

Решение в сообщении ниже
Вложения
Тип файла: rar php.rar (1,015.4 Кб, 13 просмотров)

Последний раз редактировалось Вадим Мошев; 12.05.2018 в 13:19.
mindchamber вне форума Ответить с цитированием
Старый 10.04.2017, 10:54   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Хранить в сессии.

Цитата:
Сообщение от mindchamber Посмотреть сообщение
Почему их надо ставить именно таким образом? Из этих кавычек строится цепочка, которая не дает вывести все сообщения одним махом?
А что с ними? Какая цепочка? Просто выводит то, что внутри, только при условии if.
Эквивалентно
Код:
if (.....) {
    echo "<form ..... </form>";
}
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.04.2017, 11:42   #3
mindchamber
 
Регистрация: 28.03.2017
Сообщений: 7
По умолчанию

Да, спасибо, разобрался посмотрев документацию. В коде разобрался, то что задумал можно реализовать через сессии.
mindchamber вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очередной нубский вопрос по SQL nanoflooder SQL, базы данных 2 01.04.2016 22:38
почти нубский вопрос Sater Свободное общение 1 20.11.2012 20:57
Нубский вопрос по строкам в c# Fray120892 C# (си шарп) 1 21.10.2012 16:38
Нубский вопрос Lucius42 Visual C++ 8 14.05.2012 12:52
Очень нубский вопрос zlo_999 Помощь студентам 2 19.12.2011 19:06