2014-01-10 75 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 =“表单提交”。但是就像我说过的,由于某种原因,我无法返回值。我有<?php echo $提示符; ?>在我的元素内。 – cvandal

+0

我花了一些额外的努力,并设法弄清楚如何返回一个变量而不是一个会话变量。原来,我不得不echo $ testApplication->提示符而不是$提示符。 – cvandal

+0

'$ this'将在课堂上使用。你的意思是'$ prompt ='something'; echo $ prompt;' – Popnoodles