# ДоХтор (23.02.2020 / 22:23)Да
Ок )
Т.е., эти вопросы должны меняться после каждого нажатия на "Сохранить"?
Добавлено: 23.02.2020 / 22:44
И если не трудно последняя просьба добавьте чтобы и картанки менялись, т.е. картинка в соотвествии с вопросом
Не усложняй браток, давно придуманы Гугл формы опрос
Сделай как тебе надо ,и встрой страницу пусть введут не имейл а ник например и собирай все чекбоксы в одно место ![]()
# sl6972 (23.02.2020 / 22:44)Я не много переписал скрипт. Теперь он состоит из файла с вопросами questions.txt:
Да
И если не трудно последняя просьба добавьте чтобы и картанки менялись, т.е. картинка в соотвествии с вопросом
<?php
session_start();
$questionsFile = 'questions.txt'; // Файл с вопросами
$answersFile = 'answers.txt'; // Файл с ответами
$quantity = 4; // Количество вопросов на одну страницу
$flash = '';
if (! file_exists($questionsFile)) {
die("<h4>Файл '$questionsFile' не найден!</h4>");
}
if (! empty($_SESSION['flash'])) {
$flash = $_SESSION['flash'] . '<hr/>';
unset($_SESSION['flash']);
}
$offset = $_SESSION['offset'] ?? 0;
$questions = file($questionsFile, FILE_SKIP_EMPTY_LINES|FILE_IGNORE_NEW_LINES);
$questions = array_slice($questions, $offset, $quantity);
if (! $questions) {
$answers = file($answersFile, FILE_SKIP_EMPTY_LINES|FILE_IGNORE_NEW_LINES);
}
if (! empty($_POST)) {
if (isset($_POST['submit'])) {
file_put_contents($answersFile, false);
$_SESSION['offset'] = 0;
}
if (isset($_POST['save'])) {
$data = [];
foreach ($_POST as $key => $item) {
strpos($key, 'ch_') === false ?: $data[] = $item;
}
$data = join(PHP_EOL, $data);
file_put_contents($answersFile, "$data\n", FILE_APPEND|LOCK_EX);
$_SESSION['flash'] = '<p>Выбраны варианты:<br><b>' . nl2br($data) . '</b></p>';
$_SESSION['offset'] += $quantity;
}
header('Location: '. basename(__FILE__));
die;
}
?>
<?= $flash ?>
<form method="post">
<?php if (! empty($questions)) { ?>
<p><b>Выберите вариант</b></p>
<p>
<?php foreach ($questions as $i => $question) { ?>
<input type="checkbox" name="ch_<?= $i ?>" value="<?= $question ?>" /><?= $question ?><br>
<?php } ?>
</p>
<p><input type="submit" name="save" /></p>
<?php } else { ?>
<p><b>Результаты Ваших ответов</b></p>
<ul>
<?php foreach ($answers as $answer) { ?>
<li><?= $answer ?></li>
<?php } ?>
</ul>
<input type="submit" name="submit" value="Повторный тест" />
<?php } ?>
</form>ДоХтор, Как раз то что нужно, а картинки чтобы у разных вопросов были разные картинки
ДоХтор, По одной на страницу
<?php
session_start();
$questionsFile = 'questions.txt'; // Файл с вопросами
$answersFile = 'answers.txt'; // Файл с ответами
$quantity = 4; // Количество вопросов на одну страницу
const IMG = 'img'; // Папка с картинками
const DS = DIRECTORY_SEPARATOR;
$flash = '';
if (! file_exists($questionsFile)) {
die("<h4>Файл '$questionsFile' не найден!</h4>");
}
if (! empty($_SESSION['flash'])) {
$flash = $_SESSION['flash'] . '<hr/>';
unset($_SESSION['flash']);
}
$offset = $_SESSION['offset'] ?? 0;
$questions = file($questionsFile, FILE_SKIP_EMPTY_LINES|FILE_IGNORE_NEW_LINES);
$questions = array_slice($questions, $offset, $quantity);
if (! $questions) {
$answers = file($answersFile, FILE_SKIP_EMPTY_LINES|FILE_IGNORE_NEW_LINES);
}
if (! empty($_POST)) {
if (isset($_POST['submit'])) {
file_put_contents($answersFile, false);
$_SESSION['offset'] = 0;
}
if (isset($_POST['save'])) {
$data = [];
foreach ($_POST as $key => $item) {
strpos($key, 'ch_') === false ?: $data[] = $item;
}
if (! empty($data)) {
$data = join(PHP_EOL, $data);
file_put_contents($answersFile, "$data\n", FILE_APPEND|LOCK_EX);
$_SESSION['flash'] = '<p>Выбраны варианты:<br><b>' . nl2br($data) . '</b></p>';
$_SESSION['offset'] += $quantity;
}
}
header('Location: '. basename(__FILE__));
die;
}
$images = glob(__DIR__ . DS . IMG . DS . '*');
$key = $offset / $quantity;
$path = $images[$key] ?? '';
$image = IMG . DS . basename($path);
?>
<?= $flash ?>
<form method="post">
<?php if (! empty($questions)) { ?>
<?php if (file_exists($path)) { ?>
<p><img src="<?= $image ?>" width="100" height="100" /></p>
<?php } ?>
<p><b>Выберите вариант</b></p>
<p>
<?php foreach ($questions as $i => $question) { ?>
<input type="checkbox" name="ch_<?= $i ?>" value="<?= $question ?>" /><?= $question ?><br>
<?php } ?>
</p>
<p><input type="submit" name="save" /></p>
<?php } else { ?>
<p><b>Результаты Ваших ответов</b></p>
<ul>
<?php foreach ($answers as $answer) { ?>
<li><?= $answer ?></li>
<?php } ?>
</ul>
<input type="submit" name="submit" value="Повторный тест" />
<?php } ?>
</form>ДоХтор, У меня там просто белый экран?
ДоХтор, Сейчас