2011-08-04 86 views
0

我有一些PHP條件邏輯...基本上我想使用jQuery來顯示或隱藏某些div的,當我提交表單的PHP:使用jQuery與IF邏輯

<?php 

if (isset($_POST['submit']) { 
    /* 
     If the user submits the form and 
     use jQuery to hide an existing div tag 
     <script type="text/javascript"> 
     $('#mydiv').hide(); 
     </script> 
    */ 

} 
?> 

是否有一個排序的非混亂的方式去混合PHP和jQuery這樣?我只想我的jQuery在一個塊中,我的php在一個單獨的塊(即不穿插)

+0

有點不清楚你實際上想做什麼。通過POST值的名稱來判斷,你正在檢查看起來你是在做表單處理,但是jQuery與服務器端處理有什麼關係呢?你真的想在你的迴應中輸出jQuery代碼嗎? – brezanac

+0

重寫了我的問題,感謝您要求澄清。 – redconservatory

回答

1

那麼,如果你只是想在表單處理成功後隱藏某些東西,那麼把你的JavaScript代碼放在那裏,如果塊是一樣好的地方。在嘗試隱藏元素之前,您只需要注意DOM樹是否已經準備就緒。

if (isset($_POST['submit']) { 
    echo <<<JS 
     <script type="text/javascript"> 
      $(document).ready(function(){ 
       $('#mydiv').hide(); 
      }); 
     </script> 
JS; 
} 

然而,如果你想隱藏DIV包含不應該被看到的情況下,表單處理失敗,你應該「隱藏」你在服務器端容器的重要信息。

$status = false; // Status of the form processing 

if (isset($_POST['submit']) { 
    // If processing succeeds you set $status to true 
} 

<?php if($status){ ?> 
    <div id="myDiv"> 
     // Your super secret ingredient formula! 
    </div> 
<?php } ?> 
+0

這太棒了,謝謝! – redconservatory

2

你可以用ajax捕捉「onClick」事件,然後按照你想要的div來做:

在HTML頁面中:

<button type="button" onclick= "yourFunction()">Click Me!</button 

,然後在一個單獨的JavaScript文件:

yourfunction() { 
    $("div").hide(); 
    } 

編輯:你不需要PHP,如果你只想隱藏div時形式提交

+0

這是有道理的......但如果我需要確保,比如說php已經正確處理了表單,然後執行jQuery的東西呢? – redconservatory

+0

您是否使用AJAX提交表單,或者您是否以常規方式提交表單(例如,重新加載頁面)? –

+0

AJAX是客戶端和PHP服務器端,所以一旦你完成了在PHP中處理你的表單,你可能會在HTML頁面中設置一個標誌,表明它可以被執行的js –