2016-04-18 11 views
0

私はあなたの助けが必要です。フィードバックフォームがあり、指定されたメールボックスに電子メールが送信されます。 これは私のフォームはどのように見えるかされていますフィードバックフォームの書き込みに失敗しました

<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がどのように見えるかです::

<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ファイルの頭の中でどのように見えるかです

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

関連する問題