2016-03-20 9 views
0

übergeben Ich habe seit über 2 Tagen nach einer Lösung für dieses Problem von mir gesucht. Ging durch alle verwandten Beiträge auf Stack, aber kein Glück. Ich habe ein Formular, das Daten akzeptiert, dann geht es an eine PHP-Prozedur, um es zu verarbeiten, die ihrerseits eine HTML-Dankeseite aufruft. Ich bin überhaupt nicht mit Javascript oder JQuery vertraut, kann es aber nach einiger Zeit zum Laufen bringen. Ich poste die Codes hier zusammen mit vielen Vorschlägen, die ich vergeblich versuchte. Jede Hilfe, die mein Elend beendet, wird geschätzt. Vielen Dank.Wie Formulardaten zu löschen, nach dem Senden, aber nachdem Daten

HTML

<form method='post' action='contact-form-proc.php' name='contactform' id='contactform' onsubmit="setTimeout('clear_form()',200);return true"> 
    <p> 
    <label for='fullname'>Your Name:</label><br/> 
    <input type='text' name='fullname' /> 
    </p> 

    <p> 
    <label for='email' >Email Address:</label><br/> 
    <input type='text' name='email' /> 
    </p> 

    <p> 
     <label for='mobile' >Mobile:</label><br/> 
     <input type='text' name='mobile' /> 
    </p> 
    <p> 
     <label for='checkIndate' >Check in Date:</label><br/> 
     <input type='text' name='checkIndate'/> 
    </p> 
    <p> 
     <label for='comment' >Comment:</label><br/> 
     <textarea name='comment' cols='25' rows='3'></textarea> 
    </p> 

    <input type="image" src="submit.gif" name="submit"/> 
    <!--<input type='submit' name='submit' value='' id="submit" />--> 
    <input type="hidden" name="submit" value="Submit"/> 

</form> 

PHP

<?php 

if(empty($_POST['submit'])) 
{ 
    echo "Form is not submitted!"; 
    exit; 
} 
if(empty($_POST["fullname"]) || 
    empty($_POST["email"])) 
    { 
     echo "Please fill the form"; 
     exit; 
    } 

$name = $_POST["fullname"]; 
$email = $_POST["email"]; 
$mobile = $_POST["mobile"]; 
$checkindate = $_POST["checkIndate"]; 
$comment = $_POST["comment"]; 

mail('[email protected]' , 'New form submission' , "New form submission: Name: $name, Email:$email, Mobile: $mobile, CheckIndate:$checkIndate, Comment:$comment" ); 

header('Location: thank-you.html'); 


?> 

Diese sind, was ich versucht:

<script type="text/javascript"> 
     /*$('#contactform').trigger("reset");*/ 
     function clear_form() { 
     /* document.contactform.reset(); 

       document.getElementById("contactform").reset();*/ 
    /*$(window).load(function() { 
     $('#contactform input[type="text"]').val('');*/ 


     $(window).load(function() { 
       $('#contactform').children('input').val(''); 
       } 

     }); 
       } 
    </script> 

Antwort

0

versuchen diese.

Beenden Sie müssen nicht onsubmit Aktion aufrufen, document.ready würde ausreichen.

+0

Es löschte die Formulardaten in Ordnung, ich fügte sogar das Textarea Feld hinzu und das funktionierte auch. Aber das Formular wird nicht eingereicht .. !!!! Trotzdem danke. – RKD

+0

ist Ihr Problem gelöst? hast du diese aktion aus html entfernt? onsubmit = "setTimeout ('clear_form()', 200); true zurückgeben" Ich habe den gesamten Code in meinen lokalen Speicher kopiert und alles funktioniert gut. –

+0

Auch meine Änderungen haben keinen Einfluss auf das Senden des Formulars, also gib mir mehr Informationen darüber, damit du das Problem lösen kannst. –

0

Vielen Dank für die Auszeit und versuchen, mir und allen anderen mit einer Lösung für dieses seltsame Problem zu helfen.

Ich fand jedoch eine Lösung. Ich behielt alles wie es ist und zusätzlich

a. Schrieb eine Funktion zum Zurücksetzen der Formulare und, b. Diese Funktion wurde dem onload- und onunload-Handler des body-Elements hinzugefügt.

Wie unten:

<script> 
    function clearForms() 
    { 
     var i; 
     for (i = 0; (i < document.forms.length); i++) { 
     document.forms[i].reset(); 
     } 
    } 
</script> 

<body onload="clearForms()" onunload="clearForms()"> 

Hoffe, es hilft und hält viele wie mich von wertvollen Stunden und Tage zu verschwenden. Grüße.

Verwandte Themen