2017-10-04 1 views
0

Ich habe eine kurze Frage zu meiner Form. Nach dem Absenden des Formulars werden Sie auf eine Seite weitergeleitet, gefolgt von dem Text, den ich eingefügt habe. Das Problem ist, dass ich diesen Text auf der gleichen Seite anzeigen möchte, auf der sich das Formular befindet (genannt contact.html) Dateien, eine ist die Mail_handler.php und die andere contact.html. Ich habe mehrere Dinge ausprobiert, um es zu beheben, aber aus irgendeinem Grund habe ich keinen Erfolg. Ich hoffe, dass ihr mir helfen könnt! Im Folgenden finden Sie HTML und PHP.Wie zeige ich eine Nachricht auf derselben Seite an?

<form method="POST" action="mail_handler.php"> 
 
     <div class="col-sm-7 slideanim"> 
 
     <div class="row"> 
 
     <div class="col-sm-6 form-group"> 
 
      <input class="form-control" id="name" name="name" placeholder="Naam" type="text" required> 
 
      </div> 
 
      <div class="col-sm-6 form-group"> 
 
      <input class="form-control" id="phone" name="phone" placeholder="Telefoonnummer" type="text" required> 
 
     </div> 
 
      <div class="col-sm-12 form-group"> 
 
      <input class="form-control" id="email" name="email" placeholder="Email" type="email" required> 
 
     </div> 
 
     </div> 
 
     <textarea class="form-control" id="msg" name="msg" placeholder="Bericht" rows="5"></textarea><br> 
 
     <div class="row"> 
 
     <div class="col-sm-12 form-group"> 
 
     <button class="btn btn-default pull-right" id="submit" name="submit" type="submit">Verstuur</button> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div> 
 
     </div> 
 
    </form>

<?php 
if(isset($_POST['submit'])){ 
    $name=$_POST['name']; 
    $email=$_POST['email']; 
    $phone=$_POST['phone']; 
    $msg=$_POST['msg']; 

    $to='[email protected]'; // Receiver Email ID, Replace with your email ID 
    $subject='Form Submission'; 
    $message="Name :".$name."\n"."Phone :".$phone."\n"."Wrote the following :"."\n\n".$msg; 
    $headers="From: ".$email; 

    if(mail($to, $subject, $message, $headers)){ 


     echo "<h1>Bedankt voor uw bericht!"." ".$name.", Wij nemen zo snel mogelijk contact met u op.</h1>"; 
    } 
    else{ 
     echo "Something went wrong!"; 
    } 
} 

>

+0

Sie benötigen Verwendung von 'ajax' Anruf und das legt die über sie zu machen. Zeigen Sie die Antwort auf dem Formular, wie Sie möchten. – Panther

Antwort

0

der beste Weg ist, Ajax zu verwenden, aber wenn Sie das nicht tun können, können Sie diesen kleinen Trick:

ändern contact.html in PHP-Skript (vielleicht contact.php)

<?php 
    if(isset($_GET['msg'])) echo $_GET['msg']; 
?> 
<form method="POST" action="mail_handler.php"> 
     <div class="col-sm-7 slideanim"> 
     <div class="row"> 
     <div class="col-sm-6 form-group"> 
      <input class="form-control" id="name" name="name" placeholder="Naam" type="text" required> 
      </div> 
      <div class="col-sm-6 form-group"> 
      <input class="form-control" id="phone" name="phone" placeholder="Telefoonnummer" type="text" required> 
     </div> 
      <div class="col-sm-12 form-group"> 
      <input class="form-control" id="email" name="email" placeholder="Email" type="email" required> 
     </div> 
     </div> 
     <textarea class="form-control" id="msg" name="msg" placeholder="Bericht" rows="5"></textarea><br> 
     <div class="row"> 
     <div class="col-sm-12 form-group"> 
     <button class="btn btn-default pull-right" id="submit" name="submit" type="submit">Verstuur</button> 
     </div> 
     </div> 
    </div> 
    </div> 
</div> 
     </div> 
    </form> 

im mail_handler.php, ändern Echo $ msg

<?php 
if(isset($_POST['submit'])){ 
$name=$_POST['name']; 
$email=$_POST['email']; 
$phone=$_POST['phone']; 
$msg=$_POST['msg']; 

$to='[email protected]'; // Receiver Email ID, Replace with your email ID 
$subject='Form Submission'; 
$message="Name :".$name."\n"."Phone :".$phone."\n"."Wrote the following :"."\n\n".$msg; 
$headers="From: ".$email; 

if(mail($to, $subject, $message, $headers)){ 


    $msg = "<h1>Bedankt voor uw bericht!"." ".$name.", Wij nemen zo snel mogelijk contact met u op.</h1>"; 
} 
else{ 
    $msg = "Something went wrong!"; 
} 

header("Location: contact.php?$msg"); 

} ?> 
+0

Danke, es funktioniert! –

0

Verwendung AJAX

$("form").submit(function(e) { 
    e.preventDefault(); 
    var name = $('#name').val(); 
    // do this for all other input tags 
     $.post("file.php" , {x:name , .....} , function(data){ 
       // do stuff with data , here data is the things echoed/printed by 'file.php' 
     }); 
    }); 
Verwandte Themen