我有一个简单的工作表单,我想在发送表单并重新加载页面后显示一个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一加载就会显示在网页上,但我需要它只在表单发送和页面重新加载时显示。
抱歉,我是一个初学者,这可能真的很简单。
为您的提交按钮命名,如下
<input type="submit" name="btnSubmit" value="Submit" />
或
<button type="submit" name="btnSubmit">Submit </button>
然后检查一下按钮是否点击并提交了您的表格,如下面的
if( isset($_POST["btnSubmit"]) ){
$result= '<p>Thanks!</p>';
}
或者您可以使用其他必填字段(如"电子邮件"、"姓名"(进行控制。
不要使用if($_SERVER['REQUEST_METHOD'] == 'POST'){ }
,因为一个页面可以容纳多个表单,并且您无法检测提交的表单。
只有当请求的方法是POST
时,才应该echo
它。如果请求类型是GET
,这通常意味着页面是通过url访问的,则不应对此进行响应。你可以像下面这样进行检查,
if($_SERVER['REQUEST_METHOD'] == 'POST') {
echo $result;
}
if($_SERVER['REQUEST_METHOD'] == 'POST'){
echo $result;
}
这将检查表单是否已使用POST方法提交,并且您可以打印您的消息