2017-10-04 3 views
0

J'ai une petite question à propos de mon formulaire. Après avoir soumis le formulaire, vous serez redirigé vers une page suivie du texte que j'ai mis. Le problème est que je veux que ce texte soit affiché sur la même page que le formulaire (nommé contact.html) J'utilise deux fichiers, l'un est Mail_handler.php et l'autre contact.html. J'ai essayé plusieurs choses pour le réparer, mais pour une raison quelconque, je n'ai pas de succès. J'espère que vous pourrez m'aider! Ci-dessous vous pouvez trouver le HTML et PHP.Comment afficher un message sur la même page?

<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

Vous devez utiliser l'appel 'ajax' et le soumettre par elle. Montrez la réponse sur le formulaire comme vous le souhaitez. – Panther

Répondre

0

la meilleure façon est d'utiliser ajax, mais si vous ne pouvez pas le faire, vous pouvez faire ce petit truc:

changement contact.html en script php (peut-être 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> 

dans le mail_handler.php, changer d'écho $ 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

Merci, ça marche! –

0

Utilisez 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' 
     }); 
    });