【问题标题】:What's the best way to email form details?通过电子邮件发送表单详细信息的最佳方式是什么?
【发布时间】:2014-02-08 01:53:41
【问题描述】:

新手求指教,如果有人能帮助我,将不胜感激!!!

所以我的网站上有一个简单的表格:

<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>

我想将详细信息通过电子邮件发送给自己。我为此使用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);
?>

当用户点击“提交”按钮时,我希望在表单下方显示感谢回复并清除表单。

谁能帮我解决这个问题?

谢谢一百万!

【问题讨论】:

    标签: javascript php html forms email


    【解决方案1】:

    您实际上不需要 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";
       }
    } ?>
    

    只需将 value="" 添加到您的输入以在重新加载时清除它们。 另一方面,如果您根本不希望页面重新加载,则需要带有 AJAX 的 javascript

    注意:我没有检查你的代码是否有错误,我只是给你逻辑,但乍一看似乎没问题。

    【讨论】:

    • 感谢您的回复。该页面无法重新加载,所以我想我必须深入研究 Javascript 和 AJAX。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 2020-09-28
    • 2018-07-06
    • 2011-05-21
    • 2020-09-14
    相关资源
    最近更新 更多