【问题标题】:Can PHP manipulate (show/hide) div elements like jQuery?PHP 可以操纵(显示/隐藏)像 jQuery 这样的 div 元素吗?
【发布时间】:2011-03-12 23:59:16
【问题描述】:
我正在制作一个表单,当用户点击提交时,我希望它隐藏表单并显示一个部分,上面写着“谢谢,等等等等”
我正在使用 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
【问题讨论】:
标签:
php
jquery
webforms
html
【解决方案1】:
我认为您混淆了客户端和服务器端操作。如果您只是想在提交时更改表单页面的外观,您确实可以完全在客户端处理。
如果您想留在该表单页面上,但根据从服务器返回的信息(如示例 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);
}
);
【解决方案2】:
是和不是。
根据您问题中的场景,当表单在服务器端提交和评估时,可以显示或隐藏部分呈现的 html。
但对于'like jQuery'部分,答案是否定的。 PHP 是一种在服务器端执行的语言,需要发出请求。 IE。单击链接或提交表单。
对于客户端评估,您需要使用 javascript、flash 或类似技术。
【解决方案3】:
您可以根据自己的情况有条件地使用变量:
<?php
if($bool)
{
?>
<div class="success">Email Sent Successfully !!</div>
<?php
}
?>
【解决方案4】:
不重新加载页面。如果您重新加载整个页面,那么根据因素(是否已提交?)创建一个显示/不显示表单的 php if 语句是微不足道的。
<?php if($submited): ?>
some html
<?php else: ?>
show the form
<?php endif; ?>
否则您必须使用 jquery(或其他一些 javascript 代码)。
【解决方案5】:
PHP 是服务器端,您必须让它在页面重新加载时输出文本 'style="display: none"'。如果您尝试使用 AJAX 提交,那么不,没有 javascript 就无法做到这一点。