简体   繁体   English

通过电子邮件发送表单详细信息的最佳方法是什么?

[英]What's the best way to email form details?

Newbie seeking advice, will be much appreciated if someone can help me out!!! 新手寻求建议,如果有人可以帮助我,将不胜感激!!!

So I have a simple form on my site: 所以我的网站上有一个简单的表格:

<form id="quote" method="post" class="contact" action="mail.php">
                <fieldset>
                    <div id="form_name">
                        <label for="name" class="fixedwidth"> Please enter your full name:</label>
                        <input id="name" name="name" type="text" required aria-required="true" autofocus>
                    </div>

                    <div id="form_mail">
                        <label for="email" class="fixedwidth"> Please enter your email address:</label>
                        <input id="email" name="email" type="email" required aria-required="true">
                    </div>

                    <div id="form_tel">
                        <label for="tel" class="fixedwidth">Please enter you phone number:</label>
                        <input id="tel" name="tel" type="tel" required aria-required="true" >
                    </div>                      

                    <div id="form_message">
                        <label for="message" class="fixedwidth"> Leave a message:</label>
                        <textarea id="message" name="message" cols="20"rows="7"></textarea>
                    </div>

                    <div id="form_submit">
                    <input type="submit" value="Submit">
                    </div>

I want to email the details onto myself. 我想将详细信息通过电子邮件发送给我自己。 I'm using mail.php for this: 我为此使用mail.php:

<?php

$myemail = "myemail@gmail.com";

$name = $_POST['name'];
$email = $_POST['email'];
$tel = $_POST['tel'];
$message = $_POST['message'];
$subject = 'Website query';


$body = "Name: $name E-mail: $email Telephone Number: $tel Subject: $subject Message: $message";

mail($myemail, $subject, $body);
?>

When a user hits the "submit" button, I want a thank you response to appear below the form and the form to be cleared. 当用户单击“提交”按钮时,我希望在表格下方显示谢谢答复,并清除表格。

Can anyone help me out with this? 谁能帮我这个忙吗?

Thanks a million! 太感谢了!

You actually do not need javascript to do this, just put everything on the same page and check if POST values are sent. 实际上,您不需要JavaScript即可,只需将所有内容放在同一页上,然后检查是否发送了POST值。

    <form id="quote" method="post" class="contact" action="">
                    <fieldset>
                        <div id="form_name">
                            <label for="name" class="fixedwidth"> Please enter your full name:</label>
                            <input id="name" name="name" type="text" required aria-required="true" autofocus>
                        </div>

                        <div id="form_mail">
                            <label for="email" class="fixedwidth"> Please enter your email address:</label>
                            <input id="email" name="email" type="email" required aria-required="true">
                        </div>

                        <div id="form_tel">
                            <label for="tel" class="fixedwidth">Please enter you phone number:</label>
                            <input id="tel" name="tel" type="tel" required aria-required="true" >
                        </div>                      

                        <div id="form_message">
                            <label for="message" class="fixedwidth"> Leave a message:</label>
                            <textarea id="message" name="message" cols="20"rows="7"></textarea>
                        </div>

                        <div id="form_submit">
                        <input type="submit" value="Submit">
                        </div>
     </fieldset>
</form>
<?php if(isset($_POST['email'])) { // & other checks

   $myemail = "myemail@gmail.com";

   $name = $_POST['name'];
   $email = $_POST['email'];
   $tel = $_POST['tel'];
   $message = $_POST['message'];
   $subject = 'Website query';


   $body = "Name: $name E-mail: $email Telephone Number: $tel Subject: $subject Message: $message";

   if(mail($myemail, $subject, $body)){
     echo "MAIL SENT";
   }
} ?>

Just add value="" to your inputs to clear them on reload. 只需将value =“”添加到您的输入即可在重新加载时清除它们。 On the other hand if you do not want the page to reload at all you will need javascript with AJAX 另一方面,如果您根本不希望重新加载页面,则需要AJAX的javascript

NB: I haven't checked your code for errors I'm just giving you the logic but at first glance it seems ok. 注意:我没有检查您的代码是否有错误,我只是向您提供逻辑,但乍一看似乎还可以。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM