Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/02/2013, à 17:16

max02100

probleme de pop up jquery

Bonjour à tous, suite à plusieurs recherche sur google infructueuse je me rapproche de vous pour votre aide big_smile

En effet je souhaite que quand on clique sur envoyer le message et qu'il y a une erreur, le message souvre dans une pop up et non pas sur une nouvelle page comme il le fait actuellement. J'ai beau essayer de placer mes div et autres  un peu partout mais queneni!
Je vous donne l'adresse de ma page, vincemaxime.Free.fr, le formulaire se trouve sur le lien me joindre.
Je vous joint aussi le fichier du formulaire si quelqu'un arrive à trouver ca serait magnifique big_smile
En vous remerciant

<!DOCTYPE html>
<html lang="fr"> 
  <head> 
    <title>CV en ligne</title>
	
	<!-- meta -->
    <meta name="CV en ligne" content="">
    <meta name="Vince" content="">
 
    <!-- mon icon -->
    <link rel="shortcut icon" href="./icones/matrix.png">
	
	<!-- mon template.css -->
    <link rel="stylesheet" href="formulaire.css" type="text/css"  media="screen">
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
    <link rel="stylesheet" href="/resources/demos/style.css" />
      
	<!-- importation de jquery -->
	<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
 	<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>

	  <script>
		  $("#envoie").click(function() {
			$("#fin").dialog();
	  	  });
	  </script>
	
  </head>
  		<body>
  			<?php
		/*
			********************************************************************************************
			CONFIGURATION
			********************************************************************************************
		*/
		// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
		$destinataire = 'vincemaxime@gmail.com';

		// copie ? (envoie une copie au visiteur)
		$copie = 'oui';

		// Action du formulaire (si votre page a des paramètres dans l'URL)
		// si cette page est index.php?page=contact alors mettez index.php?page=contact
		// sinon, laissez vide
		$form_action = '';

		// Messages de confirmation du mail
		$message_envoye = "Votre message a bien été envoyé. Une copie vous est parvenue.";
		$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

		// Message d'erreur du formulaire
		$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

		/*
		 * NoSpamQuestion affiche une question pour la validation d'un formulaire ...
		 * $mode, mode question ou réponse par défaut tirage au sort de question {string}
		 * $answer, lors de la demande d'une réponse à la question numero tant ... {int}
		 *
		 * @returns array
		 *
		 * Ajouter une question :
		 * copier/coller ces lignes et remplir le contenu entre guillemets doubles :
		 *
		 * $array_pictures[$j]['num'] = $j; // ne pas changer cette ligne
		 * $array_pictures[$j]['question'] = "mettre ici la question (correspondant à l'image si vous utilisez une image)";
		 * $array_pictures[$j]['answer'] = "mettre ici la réponse à l'énigme";
		 * $j++; // ne pas oublier cette ligne dans la copie :-)
		 *
		 * C'est tout. Question suivante ? :-)
		 *
		 */
		function NoSpamQuestion($mode = 'ask', $answer = 0)
		{
			$array_pictures = array(); $j = 0;

			$array_pictures[$j]['num'] = $j;
			$array_pictures[$j]['question'] = "Saisissez, en lettre,  le résultat de 2 multiplié par 2.";
			$array_pictures[$j]['answer'] = "quatre";
			$j++;

			$array_pictures[$j]['num'] = $j;
			$array_pictures[$j]['question'] = "En quelle année c'est déroulée la révolution française?";
			$array_pictures[$j]['answer'] = "1789";
			$j++;

			$array_pictures[$j]['num'] = $j;
			$array_pictures[$j]['question'] = "Ecrire 12 en lettres";
			$array_pictures[$j]['answer'] = "douze";
			$j++;
	
			$array_pictures[$j]['num'] = $j;
			$array_pictures[$j]['question'] = "Quelle est, en lettre, le numéro du Galaxy S3?";
			$array_pictures[$j]['answer'] = "3";
			$j++;
	
			$array_pictures[$j]['num'] = $j;
			$array_pictures[$j]['question'] = "Toto et Titi sont dans un bateau, Titi tombe à l'eau. Qui reste t'il? ";
			$array_pictures[$j]['answer'] = "Toto";
			$j++;

			if ($mode != 'ans')
			{
				// on est en mode 'tirer au sort', on tire une image aléatoire
				$lambda = rand(0, count($array_pictures)-1);
				return $array_pictures[$lambda];
			}
			else
			{
				// on demande une vraie réponse
				foreach($array_pictures as $i => $array)
				{
					if ($i == $answer)
					{
						return $array;
						break;
					};
				};
			}; // Fin if ($mode != 'ans')
		};
		/*
			********************************************************************************************
			FIN DE LA CONFIGURATION
			********************************************************************************************
		*/
			// on tire au sort une question
			$nospam = NoSpamQuestion();

		/*
		 * cette fonction sert à nettoyer et enregistrer un texte
		 */
		function Rec($text)
		{
			$text = htmlspecialchars(trim($text), ENT_QUOTES);
			if (1 === get_magic_quotes_gpc())
			{
				$text = stripslashes($text);
			}

			$text = nl2br($text);
			return $text;
		};

		/*
		 * Cette fonction sert à vérifier la syntaxe d'un email
		 */
		function IsEmail($email)
		{
			$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
			return (($value === 0) || ($value === false)) ? false : true;
		}

		// formulaire envoyé, on récupère tous les champs.
		$nom        = (isset($_POST['nom']))        ? Rec($_POST['nom'])        : '';
		$email      = (isset($_POST['email']))      ? Rec($_POST['email'])      : '';
		$objet      = (isset($_POST['objet']))      ? Rec($_POST['objet'])      : '';
		$message    = (isset($_POST['message']))    ? Rec($_POST['message'])    : '';
		$antispam_h = (isset($_POST['antispam_h'])) ? Rec($_POST['antispam_h']) : '';
		$antispam_r = (isset($_POST['antispam_r'])) ? Rec($_POST['antispam_r']) : '';

		// On va vérifier les variables et l'email ...
		$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
		$err_formulaire = false; // sert pour remplir le formulaire en cas d'erreur si besoin

		if (isset($_POST['envoi']))
		{
			// On demande la vraie réponse
			$verif_nospam = NoSpamQuestion('ans', $antispam_r);

			if (strtolower($antispam_h) != strtolower($verif_nospam['answer']))
			{
				// le formulaire s'arrête ici
				echo '<p id="fin">Vous n\'avez pas répondu correctement à la question Antispam, veuillez réessayer.</p>';
			}
			else
			{
				if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
				{
					// les 4 variables sont remplies, on génère puis envoie le mail
					$headers  = 'From:'.$nom.' <'.$email.'>' . "\r\n";
					//$headers .= 'Reply-To: '.$email. "\r\n" ;
					//$headers .= 'X-Mailer:PHP/'.phpversion();

					// envoyer une copie au visiteur ?
					if ($copie == 'oui')
					{
						$cible = $destinataire.','.$email;
					}
					else
					{
						$cible = $destinataire;
					};

					// Remplacement de certains caractères spéciaux
					$message = str_replace("&#039;","'",$message);
					$message = str_replace("&#8217;","'",$message);
					$message = str_replace("&quot;",'"',$message);
					$message = str_replace('<br>','',$message);
					$message = str_replace('<br />','',$message);
					$message = str_replace("&lt;","<",$message);
					$message = str_replace("&gt;",">",$message);
					$message = str_replace("&amp;","&",$message);

					// Envoi du mail
					if (mail($cible, $objet, $message, $headers))
					{
						echo '<p id="fin">'.$message_envoye.'</p>';
					}
					else
					{
						echo '<p id="fin">'.$message_non_envoye.'</p>';
					};
				}
				else
				{
					// une des 3 variables (ou plus) est vide ...
					echo '<p id="fin">'.$message_formulaire_invalide.'</p>';
					$err_formulaire = true;
				};
			};
		}; // fin du if (!isset($_POST['envoi']))

		if (($err_formulaire) || (!isset($_POST['envoi'])))
		{
			// afficher le formulaire
			echo '
			<form id="contact" method="post" action="'.$form_action.'">
			<fieldset><legend>Vos coordonnées</legend>
				<p class="indent"><label for="nom">Nom :</label><input type="text" id="nom" name="nom" value="'.stripslashes($nom).'" tabindex="1" /></p>
				<p class="indent"><label for="email">Email :</label><input type="text" id="email" name="email" value="'.stripslashes($email).'" tabindex="2" /></p>
			</fieldset>

			<fieldset><legend>Votre message</legend>
				<p class="indent"><label for="objet">Objet :</label><input type="text" id="objet" name="objet" value="'.stripslashes($objet).'" tabindex="3" /></p>
				<p class="indent"><label for="message">Message :</label><textarea id="message" name="message" tabindex="3" cols="20" rows="5">'.stripslashes($message).'</textarea></p>
			</fieldset>

			<fieldset><legend>Antispam</legend>
				<p><label for="antispam_h">'.$nospam['question'].'</label><input type="text" name="antispam_h" id="antispam_h" /><input type="hidden" name="antispam_r" value="'.$nospam['num'].'" /></p>
			</fieldset>

			<div id="envoie" style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !"/></div>
			</form>';
		};
		?>
		</body>
</html>

Hors ligne

#2 Le 11/02/2013, à 18:38

Maisondouf

Re : probleme de pop up jquery

Au vu de ton code, il va falloir que tu testes plus de choses pour aboutir.
La problème du popup n'en est pas un la fonction alert() de javascript fait très bien ça.
Mais dans le cas d'un formulaire il y a des librairies de contrôle de champs déjà faites.
C'est le cas de "gen_validatorv4".


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#3 Le 16/02/2013, à 09:00

max02100

Re : probleme de pop up jquery

en effet gen_validatorv4 à l'air vraiment pas mal je vais me pencher dessus ce week end alors mais il faut que je lui rajoute un alert alors parce qu'il n'a pas l'air d'en faire un à la fin.

Hors ligne