Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在表单提交后使元素出现?_Php_Forms - Fatal编程技术网

Php 如何在表单提交后使元素出现?

Php 如何在表单提交后使元素出现?,php,forms,Php,Forms,我有一个简单的工作表单,我想在发送表单并重新加载页面后显示一个html元素 到目前为止,我所拥有的: <?php $firstname = $_POST['firstname']; $lastname = $_POST['lastname']; $email = $_POST['email']; $company = $_POST['company']; $phone = $_POST['phone']; $message = $_POST['message']; $formcontent

我有一个简单的工作表单,我想在发送表单并重新加载页面后显示一个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在加载后立即显示在网页上,但我需要它仅在表单发送和页面重新加载时显示


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

只有在请求方法为
POST
时,才应该
echo
它。如果请求类型为
GET
,这通常意味着该页面是通过url访问的,则不应回显。您可以按如下方式执行此检查

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

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

为您的提交按钮指定一个名称,如下所示

<input type="submit" name="btnSubmit" value="Submit" />
if( isset($_POST["btnSubmit"]) ){
   $result= '<p>Thanks!</p>';
}

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

<input type="submit" name="btnSubmit" value="Submit" />
if( isset($_POST["btnSubmit"]) ){
   $result= '<p>Thanks!</p>';
}
if(isset($\u POST[“btnSubmit”])){
$result='谢谢!

'; }
或者,您可以使用其他必填字段(如“电子邮件”、“姓名”)进行控制


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

这是最好的解决方案。非常感谢!