envoi de formulaire sans rafraichir la page

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : envoi de formulaire sans rafraichir la page

Re: envoi de formulaire sans rafraichir la page

par AB » 26 sept. 2012, 23:14

Il y a un exemple d'envoi de données et réception ajax avec jquery dans la fin de ce message. Dans cet exemple je récupère des données dans les div pour les passer en paramètre dans la requête ajax et j'alimente un div avec le retour. Dans ton cas tu auras à récupérer le contenu de ton formulaire pour le passer à la requête ajax, et c'est très facile avec la fonction serialize de jquery. Et dans ton cas, en retour tu n'auras qu'à afficher un message de confirmation ou d'erreur d'envoi de mail (ou d'information genre "champ non remplis"...).

envoi de formulaire sans rafraichir la page

par big.biggels » 26 sept. 2012, 17:19

hello, je me décide à poster sur le forum qui, je tient à le préciser, m'as sortit du pétrin plus d'une fois, mais là je ne trouve pas de réponse adéquate.

le problème est simple( enfin pour vous :wink: ) je souhaiterais envoyer un formulaire sans rafraîchir la page, je précise que mon formulaire (je reçois les mails) mais la page refresh

voici mon code php que j'utilise
<?php
if(!empty($_POST)){
 extract($_POST);
 $valid = true;
 if(empty($nom)){
	 $valid=false;
	 $errornom="tape un nom";
 }
 if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)){
 	 $valid=false;
 	 $erroremail="ton email est foireux";
 } 
 if(empty($email)){
	 $valid=false;
	 $erroremail="tape un mail";
 }
  if(empty($message)){
	 $valid=false;
	 $errormessage="tape un message";
 }
 if($valid){
	$to="[email protected]";
	$sujet=$nom." m'a envoyé de mail depuis mon site";
	$header="From: $nom <$email>";
	if(mail($to,$sujet,$message,$header)){
		$msg = "j'ai bien reçu ton mail";
		unset($nom);
		unset($email);
		unset($message); 
		}else{
			$msg = "Houston, we've had a problem";
		}
 }
}
?>

mon formulaire et le code html que j'utilise
       <div id="monForm"> <!-- FORM --> 
            <form  id="form" method="post" action="index.php">

            <label>Name:</label>
            <input name="nom"  id="nom" value="<?php if(isset($nom)) echo $nom ?>" >
            <span class="error-form"><?php if(isset($errornom)) echo $errornom ?></span>

            <label>Email:</label>
            <input name="email" id="email" value="<?php if(isset($email)) echo $email ?>" >
            <span class="error-form"><?php if(isset($erroremail)) echo $erroremail ?></span>

            <label>Message:</label>
            <textarea name="message" id="message" ><?php if(isset($message)) echo $message ?></textarea>
            <span class="error-form"><?php if(isset($errormessage)) echo $errormessage ?></span>

            <input type="submit" id="envoyer" value="envoyer" >
          </form>
        <?php 
		if(isset($msg)){ 
		    echo "<p>$msg</p>";
		}
	?>
        </div> <!-- END FORM --> 
le code présent est le résultat de recherches et d'apprentissage parfois difficile car je sui débutant en matière de php et de jquery.
au fil de mes recherches sur le grand oueb mondiale, je tombe souvent sur l'utilisation d'Ajax ou jquery (c'est le moment où je suis paumé et sollicite votre aide)
merci d'avance