Динамический текст Используя JavaScript и PHP? - PullRequest
1 голос
/ 16 ноября 2011

Я работаю над небольшим проектом, в основном у меня есть текст на моей странице PHP / HTML, который выводится из переменной ($rief_string).

Существует также кнопка возврата и продолжения, которая в основном вычитает или добавляет к другой переменной ($rief_page - которая извлекается из моей БД).Краткая строка изменяется в зависимости от краткой страницы с помощью операторов if.Первая проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю кнопку «Продолжить» (кнопка «Отправить»), она повторно отправляет / обновляет страницу, в результате чего моя краткая страница сбрасывается до 0.

Поэтому я думаю, что, возможно, я мог бы использовать JS для хранения информациии переменные страницы и управление динамическим текстом, но тогда как мне обновить мою БД с текущим значением страницы через JS?Разве не так легко вручную изменить / взломать эти значения?Я бы предпочел, чтобы моя БД обновлялась номером страницы каждый раз, когда пользователь нажимает кнопку «назад / продолжить».

Мне бы очень хотелось получить несколько советов, поскольку я студент, пытающийся разработать интерактивную книгу, подобную сайту.(для сохранения текущей страницы используется БД).

Код:

<?
$brief_info = "brief info goes here";
$brief_page = 0; //< will soon be pulled off DB

if (isset($_GET['brief1Go'])) {
    $brief_page = $brief_page + 1;
}
else if (isset($_GET['brief1Back'])) {
    $brief_page = $brief_page - 1;
}


$breifController = "
    <form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">
        <input type=\"submit\" name=\"brief1Back\" id=\"brief1Back\" value=\"BACK\" />
    </form>

    <form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">
        <input type=\"submit\" name=\"brief1Go\" id=\"brief1Go\" value=\"CONTINUE\" />
    </form>";



if($brief_page == 0){
    $brief1_info = "<b>Welcome Commander,</b> you are currently viewing the Mission Control Brief page, here you can view all your missions that you need to complete in order to advance through your prestiges. You will need to follow your briefs carefully in order to succeed. <br /><br />

    ";
}
else if($brief_page == 1){
    $brief_info = "Okay, let me show you around the place ...";
}
else if($brief_page == 2){
    $brief_info = "brief is on 2";
}

?>

1 Ответ

0 голосов
/ 16 ноября 2011

Почему бы просто не использовать get vars целиком?

да, начинать с 0, если не установлено значение $ _GET ['page'] ...

$brief_page = 0;
if(isset($_GET['page']))
    $brief_page = $_GET['page'];

тогда используйте только ссылки на ваши следующие и предыдущие страницы вместо какой-то странной публикации.

<a href="/somefile.php?page=<?php echo $prev; ?>">Previous</a> <a href="/somefile.php?page=<?php echo $next; ?>">Next</a>

где, очевидно, номера страниц в предыдущем и следующем просто повторяются с php

$prev = $brief_page - 1;
$next = $brief_page + 1;

Пользовательские вещи для хранения могут быть легко обработаны с помощью sesisons, cookies или даже других переменных, если вы хотите ввести ужасную дыру в безопасности. Твой выбор действительно. Я бы определенно не делал это через $ _POST. полностью раздражает. Идите со всем полным на ajax, если вы хотите сделать это. По крайней мере, вы не будете приставать к пользователю сообщениями «Вы уверены, что хотите повторно отправить данные формы», если они решат обновить страницу.

...