2010-07-07 43 views
1

我在做一種形式,當用戶點擊提交,我希望它隱藏表單,並顯示出部分,說:「謝謝你,等等等等」PHP可以像jQuery一樣操作(顯示/隱藏)div元素嗎?

我使用PHP/PEAR郵件廠:

$mailObj =& Mail::factory('mail'); 

$bool = $mailObj->send($recipient, $headers, $body); 

if($bool) 
    echo "Thank you for your submission."; 
else 
    echo "There was a problem processing your request."; 

$body = ""; // clear the body 

回答

2

我認爲你很困惑客戶端和服務器端操作。如果您只是想在提交時更改表單頁面的外觀,則確實可以在客戶端完全處理它。

如果你想留在那個表單頁面上,但是根據從你的服務器返回的信息改變它的外觀(如你的示例php代碼),那麼你需要做一個異步表單提交。您可以使用jQuery的$.ajax()函數或其親屬,然後根據您從服務器端腳本返回的成功/失敗信息在回調函數中更改頁面。

簡單的例子:

$.post(
    'your_php_handler.php', 
    $("#your_form").serialize(), // send all your form fields 
    function(data) { // data = what comes back from your php handler script 
    $('#thing_you_want_to_change').html(data); 
    } 
); 
0

PHP是服務器端,當頁面重新加載時,你將不得不輸出文本'style =「display:none」'。如果你正在嘗試使用AJAX提交,那麼不,沒有JavaScript沒有辦法做到這一點。

2

不是沒有重新加載頁面。如果你重新加載整個頁面,那麼它的微不足道的做一個PHP的if語句顯示/或不取決於因素的形式(是否submited?)。

<?php if($submited): ?> 
some html 
<?php else: ?> 
show the form 
<?php endif; ?> 

否則,你必須去與jQuery(或其他JavaScript代碼)。

2

您可以在有條件的情況下使用一個變量:

<?php 
if($bool) 
{ 
?> 
    <div class="success">Email Sent Successfully !!</div> 
<?php 
} 
?> 
6

是,也不是。

根據您的問題中的情況,當提交表單並評估服務器端時,可以顯示或隱藏部分呈現的html。

但對於'像jQuery'部分,答案是否定的。 PHP是一種執行服務器端的語言,並要求提出請求。即點擊鏈接或提交表單。

對於客戶端評估,您需要使用JavaScript,Flash或類似技術。