2016-04-18 10 views
0

Ich brauche deine Hilfe. Ich habe ein Feedback-Formular, das eine E-Mail an ein bestimmtes Postfach sendet. Diese ist, wie meine Form wie folgt aussieht:Fehler beim schreiben eines Feedbackformulars 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> 

Dies ist, wie mein Skript wie in Kopf der HTML-Datei aussieht:

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

Und das ist, wie meine feedback_lib.php wie folgt aussehen:

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

?> 

Und meine Frage ist: warum es nicht funktioniert? Wo ist meine Schuld? Danke für die Antworten.

+3

# wird für "id" und nicht für "name" verwendet. Fügen Sie Ihrem Formularelement-Tag id = "feedback" hinzu. – smith

+0

danke! es funktioniert jetzt. – Gurgen

Antwort

3

Verwenden Sie feedback ID in der Form.

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

Vielen Dank !! – Gurgen

+0

@Gurgen, Wenn es funktioniert, sollten Sie die Antwort akzeptieren, so dass andere Menschen von der Antwort profitieren können. Vielen Dank. –

+0

Ich habe eine andere Frage. Ich habe definiert, die Formulardaten nicht zu löschen, wenn Fehler wie falsche E-Mail oder Nachricht kürzer als 10 Symbole sind. Wie kann ich es schaffen, Formulardaten zu löschen, wenn ich Antwort = 3 bekomme? – Gurgen

Verwandte Themen