PHP可以操纵(显示/隐藏)像jQuery这样的div元素吗?

时间:2010-07-07 19:13:43

标签: php jquery webforms html

我正在制作表单,当用户点击提交时,我希望它隐藏表单并显示“谢谢你,等等等”的部分

我正在使用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

5 个答案:

答案 0 :(得分:6)

是和否。

根据您问题中的方案,当提交表单并对服务器端进行评估时,可以显示或隐藏呈现的html的部分内容。

但对于'喜欢jQuery'部分,答案是否定的。 PHP是一种在服务器端执行的语言,需要发出请求。即点击链接或提交表单。

对于客户端评估,您需要使用javascript,flash或类似技术。

答案 1 :(得分:2)

不是没有重新加载页面。如果你重新加载整个页面,那么根据因素制作一个php if语句来显示/不显示表单(它是否被提交?)。

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

否则你必须使用jquery(或其他一些javascript代码)。

答案 2 :(得分:2)

您可以在您的情况下有条件地使用变量:

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

答案 3 :(得分: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);
  }
);

答案 4 :(得分:0)

PHP是服务器端,当页面重新加载时,你必须输出文本'style =“display:none”'。如果你试图使用AJAX提交,那么不,没有javascript就没有办法做到这一点。