【问题标题】:PHP Mail how to show success box on pagePHP Mail如何在页面上显示成功框
【发布时间】:2023-03-31 22:58:01
【问题描述】:

我是 PHP 新手,我制作了这个 PHP 邮件,用于常规联系表单...当表单完成后,页面被重定向并显示“消息已成功发送”。问题是,我不希望页面重定向..我想在索引上显示反馈,例如成功模式框或“您的消息已发送”表单下方的简单文本...

关于如何做到这一点的任何想法?

<?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$emaildestino = 'contato@zerodesign.com.br';
$email_from='contato@zerodesign.com.br';
$mensagem = $_POST['mensagem'];
$assunto = $_POST['assunto'];
$telefone = $_POST['telefone'];
$titulo = 'Mensagem - TESTE';




 <?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$emaildestino = 'contato@zerodesign.com.br';
$email_from='contato@zerodesign.com.br';
$mensagem = $_POST['mensagem'];
$assunto = $_POST['assunto'];
$telefone = $_POST['telefone'];
$titulo = 'Mensagem - TESTE';




$juntando = '<p>Esta mensagem foi enviada pelo site</p><br/>
<p><b>Nome:</b> '.$nome.'</b></p><br>
<p><b>Email:</b> '.$email.' </b></p><br>
<p><b>Telefone:</b> '.$telefone.'</p> </br>
<p><b>Mensagem:</b></p>
<p><i>'.$mensagem.'</i></p>
<hr>';

$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
$headers .= "From: $email_from " . "\n";

$envio = mail($emaildestino, $titulo, $juntando, $headers, "-r".$email_from);

if($envio)
echo "Mensagem enviada com sucesso";
else
 echo "A mensagem nãpode ser enviada";
 ?>

这是我的表格:

<form method="POST" name="contactform" action="envia.php"> 
<p><input id="inputt" type="text" name="nome" placeholder="Nome" id="nome" ></p>
<p><input  id="inputt" type="text" name="email" placeholder="Email" id="email"></p>
<p><input class="inputt" type="text" name="telefone" placeholder="Telefone" id="telefone">     </p>
<p><textarea id="mensagem" name="mensagem" rows="5" cols="40" placeholder="Mensagem" id="mensagem"></textarea></p>


<input id="button" type="submit" value="Enviar"><br>
</form>

【问题讨论】:

    标签: php html forms email


    【解决方案1】:

    如果我理解正确,您想要做的不是访问envia.php 页面,而是需要在那里发送一个AJAX 调用。 ajax 调用完成后,您可以使用 javascript 使用成功消息更新您的索引页面。

    【讨论】:

      【解决方案2】:

      我相信您正在寻找类似的东西:

      添加到表单页面顶部的 PHP 脚本重定向到同一页面

      if(isset($_POST['nome'], $_POST['email'], $_POST['mensagem'], $_POST['assunto'], $_POST['telefone']){
          ...
          $envio = mail($emaildestino, $titulo, $juntando, $headers, "-r".$email_from);
          if($envio){
              $msg = "Mensagem enviada com sucesso";
          }else{
              $msg = "A mensagem nãpode ser enviada";
          }
      }
      

      HTML:

      <form method="POST" name="contactform" action="<?php echo $_SERVER['SCRIPT_NAME'];?>"> 
          <p><input id="inputt" type="text" name="nome" placeholder="Nome" id="nome" ></p>
          <p><input  id="inputt" type="text" name="email" placeholder="Email" id="email"></p>
          <p><input class="inputt" type="text" name="telefone" placeholder="Telefone" id="telefone">     </p>
          <p><textarea id="mensagem" name="mensagem" rows="5" cols="40" placeholder="Mensagem" id="mensagem"></textarea></p>
          <input id="button" type="submit" value="Enviar"><br>
          <span id="msg"><?php if(isset($msg)){echo $msg;}?></span>
      </form>
      

      查看您的网站,您可能希望将 &lt;?php if(isset($msg)){echo $msg;}?&gt; 添加到页面顶部或添加滚动到页面底部的 js 脚本

      【讨论】:

        【解决方案3】:

        只需将action 属性设为空,例如...

        <form method="POST" name="contactform" action=""> 
        

        因此,页面将提交给自身。

        【讨论】:

        • 您好,感谢您的回答。我用单引号进行了测试,它仍然重定向到一个空白的白页,只包含文本“电子邮件已成功发送”
        • 我想在主页上显示一个小文本,在联系表单下方显示一个简单的反馈......或者可能是一个带有文本“成功发送”的模态 div
        • 但我刚刚添加了该文本。它应该显示基于事实的文本,如果图像已发送或未发送
        • 但没有重定向...当客户端按“发送”时,会自动显示小文本
        • 您的脚本没有重定向。所以,如果你按下发送,页面将保持在原来的位置
        猜你喜欢
        • 1970-01-01
        • 2017-07-21
        • 1970-01-01
        • 1970-01-01
        • 2011-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多