2016-04-18 46 views
0

我需要你的幫助。我有一個反饋表單,它將電子郵件發送到指定的郵箱。 這是我的形式看起來像:無法寫出反饋表格PHP

<form method=post name="feedback"> 
<div> 
    <div align="center"> 
       <input class="textarea1" type="text" name="name" placeholder="Name" autocomplete="off"> 
       <input class="textarea1" type="text" name="email" placeholder="Email" autocomplete="off"> 
       <input class="textarea1" type="text" name="title" placeholder="Subject" autocomplete="off"> 
       <textarea class="textarea" rows="10" name="mess" placeholder="Message" autocomplete="off"></textarea><br /> 
       <input class="submit" type="submit" value="Send" name="submit"></div> 
</form> 
<img id="load" src="load.gif" style="display: none;" /> 
     <div id="answer"></div> 

這是我的腳本看起來像在HTML文件的頭部:

<script type="text/javascript" src="jquery-2.1.1.min.js"></script> 
<script type="text/javascript"> 
      $(document).ready(function() { 
       $("#feedback").submit(function(event) { 
        event.preventDefault(); 
        $.ajax({ 
         url: "feedback_lib.php", 
         beforeSend: function() { 
          $("#load").fadeIn(400); 
         }, 
         type: "post", 
         data: $("#feedback").serialize(), 
         success: function(answer) { 
          $("#answer").html(answer); 
         } 
        }).done(function() { 
         $("#load").fadeOut(400); 
        }); 
       }); 
      }); 
     </script> 

這該是多麼我feedback_lib.php樣子:

<?php 

    $email = $_POST["email"]; 
    $mess = $_POST["mess"]; 
    $title = $_POST["title"]; 
    $name = $_POST["name"]; 
    $result = 0; 
    define(EMAIL_TO, "[email protected]"); 

    if ((strlen($email) < 5) or (strlen($message) < 10)) $result = 1; // длина сообщения 
    else { 
     if (filter_var($email, FILTER_VALIDATE_EMAIL)) { 
      $subject = "Письмо с Вашего сайта http://".$_SERVER["HTTP_HOST"]."/"; 
      $header = "From <".$email.">\r\nContent-type: text/plain; charset=utf-8\r\n"; 
      mail(EMAIL_TO, $subject, $mess, $title, $name); 
      $result = 3; //письмо отправлено 
     } 
     else $result = 2; // неправильный email 
    } 
    echo getAnswer($result); 

    function getAnswer($result = 0) { 
     switch ($result) { 
      case 0: $answer = ""; 
      break; 
      case 1: $answer = "<p style='color: red;'>Հաղորդագրության նվազագույն երկարություն 10 նիշ, իսկ email-ինը` 5:</p>"; 
      break; 
      case 2: $answer = "<p style='color: red;'>Սխալ email:</p>"; 
      break; 
      case 3: $answer = "<p style='color: green;'>Հաղորդագրությունն ուղարկված է</p>"; 
     } 
     return $answer; 
    } 

?> 

而我的問題是:爲什麼它不起作用? 我的錯在哪裏? 感謝您的回答。

+3

#用於「id」,而不是「name」。嘗試將ID =「feedback」添加到您的表單元素標記。 – smith

+0

謝謝!它現在有效。 – Gurgen

回答

3

在窗體中使用feedback id。

<form method=post name="feedback" id="feedback"> 
........... 
........... 
</form> 
+0

非常感謝你! – Gurgen

+0

@Gurgen,如果它有效,你應該接受答案,以便其他人可以從答案中受益。謝謝。 –

+0

我還有一個問題。當有錯誤的電子郵件或消息短於10個符號時,我定義不清除表單數據。當我得到答案= 3時,如何使它能夠清除表單數據? – Gurgen