如何在表单提交后显示元素?

时间:2015-08-16 17:33:13

标签: php forms

我有一个简单的工作表单,我希望在表单发送并重新加载页面后显示一个html元素。

到目前为止我所拥有的:

<?php
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$company = $_POST['company'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$formcontent=" First Name: $firstname \n Last Name: $lastname \n Phone: $phone \n Company: $company \n Message: $message";
$recipient = "someone@example.com";
$subject = "Client Webform";
$mailheader = "From: $email \r\n";

mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");

$result= '<p>Thanks!</p>'
?>

表单的操作设置为相同的php文件。所以它重新加载了同一页面。

在提交按钮下面,我得到了结果的回显:

<?php echo $result; ?>

目前,$ result会在加载后立即显示在网页上,但我需要它才会在发送表单并重新加载页面时显示。

抱歉,我是初学者,这可能很简单。

3 个答案:

答案 0 :(得分:1)

为您的提交按钮命名,如下所示

<input type="submit" name="btnSubmit" value="Submit" />

<button type="submit" name="btnSubmit">Submit </button>

然后检查点击该按钮并提交您的表单,如下所示

if( isset($_POST["btnSubmit"]) ){
   $result= '<p>Thanks!</p>';
}

或者您可以使用其他必填字段进行控制,例如&#39;电子邮件&#39;,&#39; name&#39;。

不要使用if($_SERVER['REQUEST_METHOD'] == 'POST'){ },因为一个页面可以容纳多个表单,而您无法检测提交的表单。

答案 1 :(得分:0)

只有当请求方法为echo时,您才应POST。如果请求类型为GET,这通常意味着通过URL访问页面,则不应回显。您可以执行以下检查,

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    echo $result;
}

答案 2 :(得分:0)

if($_SERVER['REQUEST_METHOD'] == 'POST'){
   echo $result;
}

这将检查表单是否已使用POST方法提交,您可以打印消息