【问题标题】:How to remain on a page after submitting a form using PHP and update it?使用 PHP 提交表单并更新后如何留在页面上?
【发布时间】:2018-07-11 21:46:57
【问题描述】:

我正在努力寻找我的问题的答案..

我正在创建的网站包含一个表单,用户可以在其中输入姓名和电子邮件,然后使用 PHP 将其转发到我的电子邮件地址(工作)。

一旦提交表单,电子邮件就会发送,但目前我被重定向到 PHP 文件。我想知道如何保持在同一页面上,然后将注册按钮文本更新为“已提交”。

这是目前为止的代码..

PHP:

<?php
if(isset($_POST['email'])) {

$email_to = "myemailaddress@test.com";
$email_subject = "New Subscriber";

$name = $_POST['name']; 
$email = $_POST['email']; 

function clean_string($string) {
  $bad = array("content-type","bcc:","to:","cc:","href");
  return str_replace($bad,"",$string);
}

$email_message = "Name: ".clean_string($name)."\n";
$email_message .= "Email: ".clean_string($email)."\n";

$headers = 'From: '.$name."\r\n".
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);  

}?>

HTML:

<form action="send_form_email.php" method="post">
    <input placeholder="Name" type="text" name="name" class="name">
    <input placeholder="Email address" type="text" name="email" class="email">
    <button type="submit" class="sign-up" value="Press here" id="test">Sign up</button>
</form>

【问题讨论】:

  • 在 Google 上搜索 AJAX 或使用 includerequire 在 index.php 中包含 send_form_email.php 文件并将表单操作设置为空字符串
  • Ajax 是你所有问题的解决方案
  • 恕我直言,您有太多未解决的问题。
  • 如果这是他目前卡住的地方,Ajax 只会给他带来更多问题。
  • 您需要养成accepting answers 的习惯,它可以帮助您解决问题。您将获得积分,并鼓励其他人帮助您。

标签: javascript php jquery html forms


【解决方案1】:

完成 send_form_email.php 中的操作后,执行以下操作:

header('位置:index.php');

您的代码如下所示:

<?php
if(isset($_POST['email'])) {

$email_to = "myemailaddress@test.com";
$email_subject = "New Subscriber";

$name = $_POST['name']; 
$email = $_POST['email']; 

function clean_string($string) {
  $bad = array("content-type","bcc:","to:","cc:","href");
  return str_replace($bad,"",$string);
}

$email_message = "Name: ".clean_string($name)."\n";
$email_message .= "Email: ".clean_string($email)."\n";

$headers = 'From: '.$name."\r\n".
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);  
header('Location: index.php');
}?>

将 index.php 替换为您的原始页面名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 2019-07-30
    • 2013-06-24
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    相关资源
    最近更新 更多