В поисках лучшего способа показать / скрыть элемент

0

Я хотел бы узнать, сможет ли кто-нибудь показать мне лучший способ показать/скрыть элемент на моей странице. Вот как я это делаю сейчас.

В самом верху моего файла index.php у меня есть код для моего приложения. Вот функция, которая определяет, была ли форма отправлена и заполняет данные $ _SESSION ['prompt'].

private function validateForm() {
    if (isset($_POST['submit'])) {
        $_SESSION['prompt'] = 'Form submitted';
    }
}

И вот элемент, который я хотел бы показать/скрыть в зависимости от того, была ли форма представлена в нижней части моего файла index.php.

<p id="dialog">
    <?php
        if (!empty($_SESSION['prompt'])) {
            echo $_SESSION['prompt'];
        }
        else {
            echo '<script>document.getElementById("dialog").style.display="none";</script>';
        }
    ?>
</p>
  • 0
    Почему вы устанавливаете переменные $_SESSION , которые затем используете в том же файле, а не просто переменные?
  • 0
    Есть ли какая-то причина, по которой вы не используете AJAX для отправки формы, если хотите отправить сообщение пользователю после отправки формы? Я бы посмотрел в jQuery и как опубликовать форму через AJAX, я думаю, что это решение, которое вы ищете.
Теги:

1 ответ

6
Лучший ответ

Это вряд ли большой скачок в творческой логике для работы

<?php
    if (!empty($_SESSION['prompt'])) {
        echo '<p id="dialog">'.$_SESSION['prompt'].'</p>';
    }
    else {
      // nothing
    }
?>

Почему вы устанавливаете переменные $_SESSION, которые затем используете в одном файле, а не только переменные? Вы используете эти данные позже?

  • 0
    Первоначально я пытался использовать переменную, но не мог отобразить ее значение, поскольку она просто ничего не возвращала. Например, прямо под моим родительским классом я определил публичную переменную $ prompt = ''; и внутри закрытой функции validateForm () у меня было $ this-> prompt = "Form Submitted". Но, как я уже сказал, я не мог вернуть значение по какой-то причине. У меня было приглашение <? Php echo $; ?> в моей стихии.
  • 0
    Я приложил немного дополнительных усилий и сумел выяснить, как вернуть переменную вместо переменной сеанса. Оказывается, мне пришлось выводить подсказку $ testApplication-> вместо $ prompt.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню