簡體   English   中英

Ajax聯系表單問題-沒有發送電子郵件

[英]Ajax Contact Form Problems - No email being sent

抱歉,我是菜鳥,但我正在努力。 我已經完成並閱讀了所有可以找到的內容,但我從未嘗試過。 非常感謝您的幫助。 表單ID在html和javascript中匹配。 PHP是用Javascript鏈接的,而我的html頭中是javascript的鏈接。 我想念什么? 我也嘗試過在網上找到的其他代碼,也沒有嘗試。問題是沒有電子郵件發送過。 如果您點擊發送頁面重新加載而已。

        <!--[if lte IE 8]><script src="js/html5shiv.js"></script><![endif]-->
        <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
            <script src="js/jquery.min.js"></script>
    <script src="js/jquery.dropotron.js"></script>
    <script src="js/skel.min.js"></script>
    <script src="js/skel-panels.min.js"></script>
    <script src="js/init.js"></script>
    <script src="js/contact.js"></script>
    <noscript>
        <link rel="stylesheet" href="css/skel-noscript.css" />
        <link rel="stylesheet" href="css/style.css" />
        <link rel="stylesheet" href="css/style-noscript.css" />
    </noscript>


<!-- Contact Form-->
            <div class="content style4 featured">
            <div class="container small">
                <form id="contact" form method="post">
                    <div class="row half">
                        <div class="6u"><input type="text" class="text" name="name" placeholder="Name" /></div>
                        <div class="6u"><input type="text" class="text" placeholder="Email" name="email" /></div>
                    </div>
                    <div class="row half">
                        <div class="12u"><textarea name="text" placeholder="Message"></textarea></div>
                    </div>
                    <div class="row">
                        <div class="12u">
                            <ul class="actions">
                                <li><input type="submit" class="button" value="Send Message" /></li>
                                <li><input type="reset" class="button alt" value="Clear Form" /></li>
<p class="success" style="display:none">Your message has been sent successfully.</p>
                                <p class="error" style="display:none">E-mail must be valid and message must be longer than 100 characters.</p>
                            </ul>
                        </div>
                    </div>
                </form>
            </div>
        </div>

PHP

<?php
// Email Submit
// Note: filter_var() requires PHP >= 5.2.0
if ( isset($_POST['email']) && isset($_POST['name']) && isset($_POST['text']) &&      filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ) {

  // detect & prevent header injections
  $test = "/(content-type|bcc:|cc:|to:)/i";
  foreach ( $_POST as $key => $val ) {
  if ( preg_match( $test, $val ) ) {
  exit;
}
}

  //send email
  mail( "test@gmail.com", "Contact Form: ".$_POST['name'], $_POST['text'], "From:" .      $_POST['email'] );

}
?>

JS

     $('#contact').submit(function() {
    var name = $("#name").val();
    var email = $("#email").val();
    var message = $("#message").val();
 var dataString = 'name=' + name + '&email=' + email + '&message=' + message;
    $.ajax({
        type : "POST",
        url : "mail.php",
        data : dataString,
        cache : false,
        success : function() {              
                $("#contact").fadeOut(300);
                                    $("#notice").fadeIn(400);
        }
    });
   return false;
 });

謝謝。

也許您的js代碼在加載jQuery之前運行。 嘗試在其他js文件之前包含jQuery:

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="js/jquery.dropotron.js"></script>
<script src="js/skel.min.js"></script>
<script src="js/skel-panels.min.js"></script>
<script src="js/init.js"></script>
<script src="js/contact.js"></script>

順便說一句,您只需要包含一次jQuery,而不是兩次。

您的textarea name="message"而您正在提交處理程序代碼中查找isset($_POST['text'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM