2017-02-11 2 views
0

Ich verwende den folgenden Code, aber Fehlermeldungen, wenn der Benutzer ein erforderliches Feld überspringt. Kann mir bitte jemand helfen? Wenn also ein Benutzer vergisst, das erforderliche Eingabefeld "Vorname" zu füllen, erscheint oberhalb des Feldes eine Fehlermeldung mit dem Text "Vorname ist Pflichtfeld".Fehlermeldungen für Kontaktformular

<form id="comment_form" action="form.php" method="post"> 
     <div class="compulsoryfield"> 
     <input class="inputfield-radio" type="radio" name="gender" value="Mr" required><label class="label-radio">Mr.</label> 
    <input class="inputfield-radio" type="radio" name="gender" value="Ms"><label class="label-radio">Ms.</label> 
    <span class="requiredmark-radio">*</span> 
    </div> 
     <div class="compulsoryfield"><span class="requiredmark">*</span> 
     <input class="inputfield3" type="firstname" placeholder="first name" required> 
    </div> 
    <div class="compulsoryfield"><span class="requiredmark">*</span> 
     <input class="inputfield1" type="lastname" placeholder="last name" required> 
    </div> 
     <input class="inputfield2" type="companyname" placeholder="company name (if applicable)"> 
     <input class="inputfield2" type="customernumber" placeholder="customer number (on invoice if available)" > 
     <br><br> 
     <div class="compulsoryfield"><span class="requiredmark">*</span> 
     <input class="inputfield3" type="email" placeholder="email address" required> 
     </div> 
     <div class="compulsoryfield"><span class="requiredmark">*</span> 
     <input class="inputfield1" type="emailagain" placeholder="re-enter email address (to confirm)" required> 
     </div> 
     <input class="inputfield2" type="telephonenumber" placeholder="telephone number (country code included)"> 
     <br><br> 
     <div class="compulsoryfield"><span class="requiredmark">*</span> 
     <input class="inputfield3" type="subject" placeholder="subject of message" required> 
     </div> 
     <div class="compulsoryfield"><span class="requiredmark">*</span> 
     <textarea id="textareafieldid" class="textareafield" name="message" placeholder="add your message here" rows="8" cols="39" required></textarea></div><br><br> 
     <p id="recaptcha-header">before sending, please show us you're real:</p> 

<div><span class="requiredmark">*</span><div id="g-recaptcha-outer" class="compulsoryfield2"> 
     <div class="g-recaptcha" data-sitekey="mySitekey"></div></div><br><br> 
     <input id="button-type1" type="submit" name="submit" value="SEND"> 

    </form> 

und

<?php 

     $email;$comment;$captcha; 
     if(isset($_POST['gender'])){ 
      $email=$_POST['gender']; 
      }if(isset($_POST['firstname'])){ 
      $email=$_POST['firstname']; 
     }if(isset($_POST['lastname'])){ 
      $email=$_POST['lastname']; 
     }if(isset($_POST['companyname'])){ 
      $email=$_POST['companyname']; 
     }if(isset($_POST['customernumber'])){ 
      $email=$_POST['customernumber']; 
      }if(isset($_POST['email'])){ 
      $email=$_POST['email']; 
     }if(isset($_POST['emailagain'])){ 
      $email=$_POST['emailagain']; 
     }if(isset($_POST['telephonenumber'])){ 
      $email=$_POST['telephonenumber']; 
      }if(isset($_POST['subject'])){ 
      $email=$_POST['subject']; 
     }if(isset($_POST['message'])){ 
      $email=$_POST['message']; 
     }if(isset($_POST['g-recaptcha-response'])){ 
      $captcha=$_POST['g-recaptcha-response']; 
     } 
     if(!$captcha){ 
      echo '<h2>Please check the captcha form.</h2>'; 
      exit; 
     } 
    $secretKey = "mtSecretKey"; 
    $ip = $_SERVER['REMOTE_ADDR']; 
     $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip); 
    $responseKeys = json_decode($response,true); 
     if(intval($responseKeys["success"]) !== 1) { 
      echo '<h2>You are a spammer !</h2>'; 
     } else { 
      echo '<h2>Thanks for your email.</h2>'; 
     } 
?> 
+0

Mögliche Duplikate von [Wie zur Anzeige von PHP-Formular Validierungsfehler neben dem Formular?] (Http://StackOverflow.com/Questions/19073574/How-to-Display-PHP-Form-validation-errors-beside-the- bilden) – gus27

Antwort

0

Ich schlage vor, Sie versuchen js Plugins wie: http://parsleyjs.org/ oder http://www.formvalidator.net/

Du wirst sehen, das erste ist für mich die beste, und das zweite ist sehr einfach.

Mit der zweiten müssen Sie nur eine Attributregeln zu Ihrem Feld wie hinzufügen:
data-validation = "erforderlich".

Mit diesem Beispiel können Sie ein Feld anfordern.

0

senden Sie das Ziel des Formulars auf die gleiche Seite, auf der das Formular aktiviert ist. Geben Sie oben auf der Seite, bevor HTML-Code an den Client gesendet wird, die Formularverarbeitung ab.

Mit diesem Code überprüfen Sie Ihr Formular auf leere Daten, wenn keine Probleme auftreten, führen Sie die Datenbankoperationen aus. Wenn ein Problem auftritt, wird der Rest der Seite geladen. Geben Sie den Code ein, unter dem die Fehlermeldung angezeigt werden soll.

<?php 
    if(strlen($problemString)>0) { 
     echo '<table><tr>'; 
     echo '<td colspan="3">'; 
     echo '<font color="#FF0000"><strong>There was a problem with your form</strong><br>'; 
     echo $problemString; 
     echo '</font></td>'; 
     echo '</tr>'; 
     echo '<tr><td colspan="3" height="16"></td></tr></table>'; 
    } 
?> 

In Ihrem Formular tun:

<input class="inputfield3" type="firstname" placeholder="first name" value="<?php echo $firstname; ?>" required> 

dies das Feld bevölkern wird mit dem, was in die Form vor dem einreichen eingegeben wurde, wenn dies das leere Feld ist, würde es leer sein. Wenn die Seite zum ersten Mal geladen wird, wäre der Wert leer (oder was auch immer Sie einstellen).

Ich habe das in meiner Website verwendet und es funktioniert gut.

Verwandte Themen