我正在制作表单,当用户点击提交时,我希望它隐藏表单并显示“谢谢你,等等等”的部分
我正在使用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
答案 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就没有办法做到这一点。