PHP提交联系表单错误后发送电子邮件POST http://www.if.com/mail/mail.php 404(未找到)-jquery-3.1.1.min.js:4

时间:2018-10-12 11:28:28

标签: php html email

我正在尝试使用PHP在提交时使用联系人表格中的数据发送电子邮件,但出现此错误> POST http://www.if.com/mail/mail.php 404(未找到)... jquery-3.1.1.min.js :4

在我的contact.html中,我有联系表的代码。

<div class="container">
        <div class="row justify-content-between">
         
          <div class="col-md-6 col-12">
            <div class="boxed boxed--border">
              <form class="form-email row mx-0" action="contact.php" method="POST" data-success="Thanks for your enquiry, we'll be in touch shortly." data-error="Please fill in all fields correctly.">
                <div class="col-md-6 col-12">
                  <label>Your name</label>
                  <input type="text" name="name" class="validate-required">
                </div>
                <div class="col-md-6 col-12">
                  <label>Email address</label>
                  <input type="email" name="email" class="validate-required validate-email">
                </div>
                <div class="col-md-6 col-12">
                  <label>Company</label>
                  <input type="text" name="company" class="validate-required">
                </div>
                <div class="col-md-6 col-12">
                  <label>Phone number</label>
                  <input type="text" name="phone" class="validate-required">
                </div>
                <div class="col-md-6 col-12">
                  <div class="input-select">
                    <select name="function">
                      <option selected="" value="Default">Function</option>
                      <option value="">CEO</option>
                      <option value="">Director</option>
                      <option value="">Commercial</option>
                      <option value="">Engineer</option>
                      <option value="">Project manager</option>
                      <option value="">HR Manager</option>
                      <option value="">Other</option>
                  </select>
                  </div>
                </div>
                <div class="col-md-6 col-12">
                  <div class="input-select">
                    <select name="country">
                      <option selected="" value="Default">Country</option>
                      <option value="">Austria</option>
                      <option value="">Slovenia</option>
                      <option value="">Romania</option>
                  </select>
                  </div>
                </div>
                <div class="col-md-12">
                  <div class="input-checkbox">
                    <input id="check-test" type="checkbox" name="agree" />
                    <label for="check-test"></label>
                  </div>
                  <span>I have read and agree to the <a href="#">terms and conditions</a></span>
                </div>
                
                <div class="col-md-5 col-lg-4 col-6"> <button type="submit" name="submit" class="btn btn--primary type--uppercase">Send Enquiry</button> </div>
              </form>
            </div>
          </div>
        </div>
      </div>

在我的contact.php中,我有此代码

    <?php
// let's do the sending

if (isset($_POST['submit'])) {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $to = 'example@gmail.com';
    $subject = "Contact form";
    $body = '<html>
                <body>
                    <h2>Contact</h2>
                    <hr>
                    <p>Name: ' .$name. '</p>
                    <p>Email: ' .$email. '</p>
                    <p>Phone: ' .$phone. '</p>
                    <p>Company: ' .$company. '</p>
                    <p>Function: ' .$function. '</p>
                    <p>Country: ' .$country. '</p>
                </body> 
             </html>';
    //headers
    $headers = "From: ".$name." <".$email.">\r\n";
    $headers = "Reply-To: ".$email."\r\n";
    $headers = "MIME-VERSION: 1.8\r\n";
    $headers = "Content-type: text/html; charset-utf-8";

    //send
    $send = mail($to, $subject, $body, $headers);
    if($send) {
        echo '<br>';
        echo 'Thanks for contacting us. We will be with you shortly.';
    }
    else{
        echo 'error';
    }}

当我将所有代码添加到一个.php文件中时,我遇到相同的错误。我不知道错误在哪里。请帮我... 我也尝试使用Java脚本,并且有相同的错误。

$(function () {

    $('#contact-form').on('submit', function (e) {
        if (!e.isDefaultPrevented()) {
            var url = "contact.php";

            $.ajax({
                type: "POST",
                url: url,
                data: $(this).serialize(),
                success: function (data) {
                    var messageAlert = 'alert-' + data.type;
                    var messageText = data.message;

                    var alertBox = '<div class="alert ' + messageAlert + ' alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>' + messageText + '</div>';
                    if (messageAlert && messageText) {
                        $('#contact-form').find('.messages').html(alertBox);
                        $('#contact-form')[0].reset();
                    }
                }
            });
            return false;
        }
    })
});

2 个答案:

答案 0 :(得分:0)

添加这样的表单ID。...我想您错过了。

<form class="form-email row mx-0" action="contact.php" id="contact-form" method="POST" data-success="Thanks for your enquiry, we'll be in touch shortly." data-error="Please fill in all fields correctly.">

答案 1 :(得分:0)

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js"></script>
<script>
$(function () {

    $('#contact-form').on('submit', function (e) {
        if (!e.isDefaultPrevented()) {
            var url = "contact.php";

            $.ajax({
                type: "POST",
                url: url,
                data: $(this).serialize(),
                success: function (data) {
                    var messageAlert = 'alert-' + data.type;
                    var messageText = data.message;

                    var alertBox = '<div class="alert ' + messageAlert + ' alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>' + messageText + '</div>';
                    if (messageAlert && messageText) {
                        $('#contact-form').find('.messages').html(alertBox);
                        $('#contact-form')[0].reset();
                    }
                }
            });
            return false;
        }
    })
});
</script>

//Try this :)