2014-01-10 4 views
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', которые затем используете в одном файле, а не только переменные? – Popnoodles

+0

Есть ли причина, по которой вы не используете AJAX для отправки формы, если хотите представить сообщение пользователю после отправки формы? Я бы посмотрел в jQuery и как отправить форму через AJAX, я думаю, что это решение, которое вы ищете. – Mike

ответ

6

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

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

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

+0

Изначально я пытался использовать переменную, но не мог ее эхо-значения, поскольку он просто ничего не возвращал. Например, прямо под моим родительским классом я определил общедоступную переменную $ prompt = ''; и внутри частной функции validateForm() у меня было $ this-> prompt = "Form Submitted". Но, как я уже сказал, я почему-то не смог вернуть значение. У меня было внутри моего элемента. – cvandal

+0

Я приложил немного дополнительных усилий и сумел выяснить, как вернуть переменную вместо переменной сеанса. Оказывается, мне нужно было выполнить echo $ testApplication-> prompt вместо $ prompt. – cvandal

+0

'$ this' будет использоваться внутри класса. Вы имеете в виду '$ prompt = 'something'; echo $ prompt; ' – Popnoodles

Смежные вопросы