2014-01-10 74 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