Js, ouverture pop-up
Résolu
necro27
Messages postés
160
Date d'inscription
Statut
Membre
Dernière intervention
-
necro27 Messages postés 160 Date d'inscription Statut Membre Dernière intervention -
necro27 Messages postés 160 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
j'ai un problème !! oui je sais c'est le but de poster sur un forum..
Bon je m'explique :
Contexte rapide : site internet, envoi de mail d'un internaute.
Je dispose donc de 3 pages *.php
--> nouscontacter.php
--> pageconfirm.php
--> confirmer.php
La page nouscontacter.php est la page contenant le formulaire principal.
La deuxième page, pageconfirm.php, est une page qui s'ouvre dans un pop-up après validation du formulaire de la première page. c'est un aperçu avant l'envoi du mail.
La troisième page, confirmer.php, est la page qui, après avoir validé le deuxième formulaire (pageconfirm.php), envoi le mail.
Mon souci est tel que :
Pour ouvrir le pop up j'appelle donc une fonction js.
Ce pop-up je voudrai ne l'ouvrir que si tout les éléments du formulaire 1 sont bien remplis (chose faite, la vérification des données fonctionne)
mais, je n'y arrive pas.. je met le code js concerné ci dessous pour plus de précision.
Ici donc, si la variable msg est non nulle, cela veut dire qu'il y a au moins une erreur sur la saisie des informations. je ré-affiche donc ma page principale contenant le formulaire sans ouvrir le pop-up. --> fonctionnel
si la variable msg est nulle, cela veut dire que le l'on ouvre la page confirm.php.
--> non fonctionnel
j'ai beau avoir les alertes qui s'affichent à chaque endroit, rien n'y fait le pop-up ne s'ouvre pas.
Voici l'en-tête de mon formulaire.
<form action="PHP/pageconfirm.php" method="POST" name="formconfirm" onsubmit="javascript:check(this);" enctype="application/x-www-form-urlencoded">
Ici la fonction check() est celle qui contient le code js ci-dessus.
Voilà merci de vos éventuelles idées.
Je vais manger, je répondrai et testerai d'éventuelles solutions dès mon retour. Merci
Necro27
j'ai un problème !! oui je sais c'est le but de poster sur un forum..
Bon je m'explique :
Contexte rapide : site internet, envoi de mail d'un internaute.
Je dispose donc de 3 pages *.php
--> nouscontacter.php
--> pageconfirm.php
--> confirmer.php
La page nouscontacter.php est la page contenant le formulaire principal.
La deuxième page, pageconfirm.php, est une page qui s'ouvre dans un pop-up après validation du formulaire de la première page. c'est un aperçu avant l'envoi du mail.
La troisième page, confirmer.php, est la page qui, après avoir validé le deuxième formulaire (pageconfirm.php), envoi le mail.
Mon souci est tel que :
Pour ouvrir le pop up j'appelle donc une fonction js.
Ce pop-up je voudrai ne l'ouvrir que si tout les éléments du formulaire 1 sont bien remplis (chose faite, la vérification des données fonctionne)
mais, je n'y arrive pas.. je met le code js concerné ci dessous pour plus de précision.
if (msg != "") { alert(msg); window.location.replace("../index.php?num=5"); return(false); } else { my_form = eval(document.formconfirm) alert(msg); window.open('PHP/pageconfirm.php', 'popup', config='height=1000,width=1000,menubar=no,toolbar=no,location=no,status=no,scrollbars=no'); my_form.target = "popup"; my_form.submit(); return(true); }
Ici donc, si la variable msg est non nulle, cela veut dire qu'il y a au moins une erreur sur la saisie des informations. je ré-affiche donc ma page principale contenant le formulaire sans ouvrir le pop-up. --> fonctionnel
si la variable msg est nulle, cela veut dire que le l'on ouvre la page confirm.php.
--> non fonctionnel
j'ai beau avoir les alertes qui s'affichent à chaque endroit, rien n'y fait le pop-up ne s'ouvre pas.
Voici l'en-tête de mon formulaire.
<form action="PHP/pageconfirm.php" method="POST" name="formconfirm" onsubmit="javascript:check(this);" enctype="application/x-www-form-urlencoded">
Ici la fonction check() est celle qui contient le code js ci-dessus.
Voilà merci de vos éventuelles idées.
Je vais manger, je répondrai et testerai d'éventuelles solutions dès mon retour. Merci
Necro27
A voir également:
- Js, ouverture pop-up
- Pop up mcafee - Accueil - Piratage
- Pop corn time - Télécharger - TV & Vidéo
- Serveur pop - Guide
- Page d'ouverture google - Guide
- Autoriser pop up firefox - Guide
8 réponses
j'ai trouvé ou ca coince : comme je t'ai l'ai dit dans mon premier message il faut supprimer l'action de ton formulaire puisque tu le gere en javscript. Ne laisse que ca :
<form method="POST" name="formconfirm" enctype="application/x-www-form-urlencoded">
supprime le bouton submit de ton formulaire et remplace par un truc du genre <a href="#" onclick="check();">valider</a>
dans ton js :
if (msg != "")
{
alert(msg);
}
ne laisse que l'affichage des erreurs (inutile de changer la location puisque de cette facon tu ne recharge pas ta page).
et ca doit marcher comme tu l'avais prévu
<form method="POST" name="formconfirm" enctype="application/x-www-form-urlencoded">
supprime le bouton submit de ton formulaire et remplace par un truc du genre <a href="#" onclick="check();">valider</a>
dans ton js :
if (msg != "")
{
alert(msg);
}
ne laisse que l'affichage des erreurs (inutile de changer la location puisque de cette facon tu ne recharge pas ta page).
et ca doit marcher comme tu l'avais prévu
Salut,
je ne sais pas si le pb vient de là mais :
1- si tu gere ton submit via js, tu n'a pas besoin d'avoir d'action dans ton form
2- si tes pages php sont toutes les 3 au meme endroits, tu dois pouvoir l'appeler sans remettre PHP/... sinon le chemin est faux.
Sinon,est ce que tu as un message d'erreur qui apparait ? es tu sur que la partie de ta fonction appelant le pop-up est bien parcourue ?
je ne sais pas si le pb vient de là mais :
1- si tu gere ton submit via js, tu n'a pas besoin d'avoir d'action dans ton form
2- si tes pages php sont toutes les 3 au meme endroits, tu dois pouvoir l'appeler sans remettre PHP/... sinon le chemin est faux.
Sinon,est ce que tu as un message d'erreur qui apparait ? es tu sur que la partie de ta fonction appelant le pop-up est bien parcourue ?
bonjour Francois,
je viens de m'apercevoir que j'ai confondu les erreurs dans mon premier post. L'erreur est en fait :
dans le cas d'erreur de saisie :
la page que je veux afficher ne s'affiche pas dans le pop-up mais à la place de celle qui déclenche le js.
dans le cas de non-erreur de saisie (formulaire ok)
ça fonctionne.
Ensuite dc pour ta solution n°1
--> si je retire le action="..."
dans le cas d'erreur de saisie :
ça fonctionne
dans le cas de non-erreur de saisie (formulaire ok)
ça ne fonctionne plus, le pop up est bien lancé mais c la page du premier formulaire au lieu du deuxième qui est affiché (la première page en quelque sorte.)
Les erreurs st inversées en quelque sorte.. un cou ça marche un cou ça marche plus suivant le action ou pas. c'est pour ça que j'ai posté ici je ne comprend pas trop ou est la faille, conflit.
sinon pour le 2-
les 3 pages sont au même endroit mais :
je rappelle les 3 pages
1--> nouscontacter.php
2--> pageconfirm.php
3--> confirmer.php
voilà ce que j'ai :
j'utilise des <div>
index.php (qui contient donc le site "entier")
sur cette page index.php, j'ai un menu à gauche qui, par l'intermédiaire d'un include apelle la page 1 à droite.
ensuite de cette page 1 je voudrai ouvrir en pop-up la page 2
puis confirmer ou annuler avec la page3 (qui gère le traitement)
voici l'architecture :
www
>>siteinternet
>>>>>index.php
>>>>>dossier contenant les pages *.php
>>>>>>>>>nouscontacter.php
>>>>>>>>>pageconfirm.php
>>>>>>>>>confirmer.php
je ne sais pas si elle est claire...
Voilà..sinon aucun message d'erreur à aucun moment, sauf les alert() qui s'affichent bien dans tout les cas de figures, seuls les redirection, ouvertures page fonctionnent mal..
Merci
je viens de m'apercevoir que j'ai confondu les erreurs dans mon premier post. L'erreur est en fait :
dans le cas d'erreur de saisie :
la page que je veux afficher ne s'affiche pas dans le pop-up mais à la place de celle qui déclenche le js.
dans le cas de non-erreur de saisie (formulaire ok)
ça fonctionne.
Ensuite dc pour ta solution n°1
--> si je retire le action="..."
dans le cas d'erreur de saisie :
ça fonctionne
dans le cas de non-erreur de saisie (formulaire ok)
ça ne fonctionne plus, le pop up est bien lancé mais c la page du premier formulaire au lieu du deuxième qui est affiché (la première page en quelque sorte.)
Les erreurs st inversées en quelque sorte.. un cou ça marche un cou ça marche plus suivant le action ou pas. c'est pour ça que j'ai posté ici je ne comprend pas trop ou est la faille, conflit.
sinon pour le 2-
les 3 pages sont au même endroit mais :
je rappelle les 3 pages
1--> nouscontacter.php
2--> pageconfirm.php
3--> confirmer.php
voilà ce que j'ai :
j'utilise des <div>
index.php (qui contient donc le site "entier")
sur cette page index.php, j'ai un menu à gauche qui, par l'intermédiaire d'un include apelle la page 1 à droite.
ensuite de cette page 1 je voudrai ouvrir en pop-up la page 2
puis confirmer ou annuler avec la page3 (qui gère le traitement)
voici l'architecture :
www
>>siteinternet
>>>>>index.php
>>>>>dossier contenant les pages *.php
>>>>>>>>>nouscontacter.php
>>>>>>>>>pageconfirm.php
>>>>>>>>>confirmer.php
je ne sais pas si elle est claire...
Voilà..sinon aucun message d'erreur à aucun moment, sauf les alert() qui s'affichent bien dans tout les cas de figures, seuls les redirection, ouvertures page fonctionnent mal..
Merci
Essaie ceci :
window.open('PHP/pageconfirm.php', 'popup','height=1000,width=1000,menubar=no,toolbar=no,location=no,status=no,scrollbars=no');
Bonjour LDMBatman
j'ai essayer les résultat sont les mêmes
Cependant, je vient de remarquer quelque chose qui peux peut être aider à comprendre.
Lorsque je clique sur un input reset, mon formulaire 1 se remet à vide
si je valide avec le formulaire vide aprè l'avoir reset
-->une nouvelle page s'ouvre (onglet sous modzilla)
-->et la page d'origine qui est donc mon index.php comme expliqué sur le com' plus haut retourne sur le localhost de base, la où l'on sélectionne le fichier site internet.
si je valide le formulaire vide sans avoir au préalable reset,
--> la page 2 devant s'ouvrir dans la pop-up s'ouvre sur la page1, la remplace.
2 validations censé produire le même effet mais pourtant effets différents..
j'ai essayer les résultat sont les mêmes
Cependant, je vient de remarquer quelque chose qui peux peut être aider à comprendre.
Lorsque je clique sur un input reset, mon formulaire 1 se remet à vide
si je valide avec le formulaire vide aprè l'avoir reset
-->une nouvelle page s'ouvre (onglet sous modzilla)
-->et la page d'origine qui est donc mon index.php comme expliqué sur le com' plus haut retourne sur le localhost de base, la où l'on sélectionne le fichier site internet.
si je valide le formulaire vide sans avoir au préalable reset,
--> la page 2 devant s'ouvrir dans la pop-up s'ouvre sur la page1, la remplace.
2 validations censé produire le même effet mais pourtant effets différents..
plutot que d'ouvrir un popup, crée un div pour afficher ton apercu que tu ouvre comme un popup au dessus de ta page
un popup, tu ouvres une nouvelle page, l'idée que je te donne
c'est un div vide et caché que tu remplis par ton apercu et rend visible par dessus ta page
avec une fonction js
comme çà tu reste toujours sur la meme page (formulaire et apercu) , pas besoin de balader tes variables, et de te casser la tete avec une popup
c'est un div vide et caché que tu remplis par ton apercu et rend visible par dessus ta page
avec une fonction js
comme çà tu reste toujours sur la meme page (formulaire et apercu) , pas besoin de balader tes variables, et de te casser la tete avec une popup
pour l'idée de la pop-up, c'est mon maître de stage qui me la demandé. un pop-up de confirmation.
sinon j'aurai bien juste remplacé tout l'un sur l'autre.. : /
et pour l'idée de balader les variables c'était pour éviter de perdre les données préalablement saisies.
Je sais avec POST que nous pouvons conserver les valeurs d'un champs, et les rapelant s'ils ont déjà été saisis
par exemple..
Mais au niveau de la liste déroulante je n'arrive pas à conserver la valeur saisie, donc voilà pourquoi passer par une pop-up..
EDIT : je précise que ce n'est pas la seule raison la liste déroulante, mais as en fai partie
sinon j'aurai bien juste remplacé tout l'un sur l'autre.. : /
et pour l'idée de balader les variables c'était pour éviter de perdre les données préalablement saisies.
Je sais avec POST que nous pouvons conserver les valeurs d'un champs, et les rapelant s'ils ont déjà été saisis
par exemple..
<input type="text" name="txtnom" value="<?php if(isset($_POST['txtnom']) && !empty($_POST['txtnom'])) {echo $_POST['txtnom'];} else {echo 'Votre nom';} ?>" size="20" onclick="this.value=''" onKeyUp="javascript:couleur(this);" />
Mais au niveau de la liste déroulante je n'arrive pas à conserver la valeur saisie, donc voilà pourquoi passer par une pop-up..
EDIT : je précise que ce n'est pas la seule raison la liste déroulante, mais as en fai partie
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le problème est que dans le cas où une erreur est détectée, la fonction window.location.replace("../index.php?num=5"); est appelée. Cette fonction charge ton index.php dans la fenetre courante et n'ouvre pas de pop-up.
Je pense que tu as du inverser window.location.replace(); et window.open() qui lui peut t'ouvrir un pop-up
Je pense que tu as du inverser window.location.replace(); et window.open() qui lui peut t'ouvrir un pop-up
if (msg != "")
{
alert(msg);
window.location.replace("../index.php?num=5");
return(false);
}
else
{
my_form = eval(document.formconfirm)
alert("dfjkghdfjkghdfjkghdfjkgdf");
window.open('PHP/pageconfirm.php', 'popup', 'height=1000,width=1000,menubar=no,toolbar=no,location=no,status=no,scrollbars=no');
my_form.target = "popup";
my_form.submit();
return(true);
}
Ici donc si msg est != de vide, donc erreur je relance la page 1
mais s'il n'y a pas de message d'erreur dans msg, je doit bien ouvrir la pop-up...
est-ce que pour toi je me trompe avec le code ci dessus? je devrai inverser les open et replace donc?
cela voudrai dire, selon ma logique (loin d'être superbe), que j'ouvre la pop-up s'il y'a une erreur trouvé (au moins) auquel cas msg serait différent de vide..
Prise de tête pour une broutille j'en suis sûr mais je ne comprend rien...-_-
{
alert(msg);
window.location.replace("../index.php?num=5");
return(false);
}
else
{
my_form = eval(document.formconfirm)
alert("dfjkghdfjkghdfjkghdfjkgdf");
window.open('PHP/pageconfirm.php', 'popup', 'height=1000,width=1000,menubar=no,toolbar=no,location=no,status=no,scrollbars=no');
my_form.target = "popup";
my_form.submit();
return(true);
}
Ici donc si msg est != de vide, donc erreur je relance la page 1
mais s'il n'y a pas de message d'erreur dans msg, je doit bien ouvrir la pop-up...
est-ce que pour toi je me trompe avec le code ci dessus? je devrai inverser les open et replace donc?
cela voudrai dire, selon ma logique (loin d'être superbe), que j'ouvre la pop-up s'il y'a une erreur trouvé (au moins) auquel cas msg serait différent de vide..
Prise de tête pour une broutille j'en suis sûr mais je ne comprend rien...-_-
alors je re-précise bien ^^
ici la variable msg, est en fait msg-erreur. (pour mieux comprendre)
Si j'ai une erreur, ou +, dans mon formulaire (champ non saisi, erreur saisie, etc)
j'incrémente à la variable msg un message qui est la raison de l'erreur.
ainsi au final, si msg != " " (donc s'il contient au moins un message d'erreur)
il me listera dans une alerte tous les message d'erreur et me ré-ouvre la page principale (index.php?num=5)
si aucune erreur de saisie dans le formulaire principal, alors msg = " " donc est bien vide, aucun message d'erreur à l'intérieur.
ainsi si le formulaire est qualifié de bien rempli (msg=" ") j'ouvre la pop-up qui me ré-affiche toute les informations saisies afin de permettre à l'utilisateur de vérifier ses saisies et s'il confirme pour de bon
Voilà j'ai détaillé un maximum, parfois trop peut-être mais je veux être clair ^^
Et t'inquiète pas pour la fatigue, d'une personne ne passe outre, ça arrive et de deux c'est bien gentil de chercher à m'aider. donc t'excuser d'être fatigué n'est pas possible. A ce tarif là c'est plutôt à moi de m'excuser de t'empêcher de dormir^^ même si je pense qu'au bout du compte je vais endormir tout le monde avec mon souci..
Et merci aux autres également d'apporter une pierre à l'édifice, pour ce problème, c'est gentil.
ici la variable msg, est en fait msg-erreur. (pour mieux comprendre)
Si j'ai une erreur, ou +, dans mon formulaire (champ non saisi, erreur saisie, etc)
j'incrémente à la variable msg un message qui est la raison de l'erreur.
ainsi au final, si msg != " " (donc s'il contient au moins un message d'erreur)
il me listera dans une alerte tous les message d'erreur et me ré-ouvre la page principale (index.php?num=5)
si aucune erreur de saisie dans le formulaire principal, alors msg = " " donc est bien vide, aucun message d'erreur à l'intérieur.
ainsi si le formulaire est qualifié de bien rempli (msg=" ") j'ouvre la pop-up qui me ré-affiche toute les informations saisies afin de permettre à l'utilisateur de vérifier ses saisies et s'il confirme pour de bon
Voilà j'ai détaillé un maximum, parfois trop peut-être mais je veux être clair ^^
Et t'inquiète pas pour la fatigue, d'une personne ne passe outre, ça arrive et de deux c'est bien gentil de chercher à m'aider. donc t'excuser d'être fatigué n'est pas possible. A ce tarif là c'est plutôt à moi de m'excuser de t'empêcher de dormir^^ même si je pense qu'au bout du compte je vais endormir tout le monde avec mon souci..
Et merci aux autres également d'apporter une pierre à l'édifice, pour ce problème, c'est gentil.
Bon voici toutes mes pages (qui concernent le problème) où je vais raccourcir un maximum.
index.php
----------------> nous contacter.php (qui contient donc le formulaire principal)
-----------------------> pageconfirm.php (à ouvrir dans la pop-up)
<body>
<div id="confirmdonnees">
<form action="confirmer.php" method="POST" enctype="multipart/form-data" onreset="javascript: ;">
<h1>Confirmation des données saisies</h1>
<p>Votre nom : <?php echo $_POST['txtnom']; ?></p>
<p>Votre prénom : <?php echo $_POST['txtpnom']; ?></p>
<p>Votre civilité :
<?php
if ($_POST['lstcivilite']==1)
{
$civilite2 = 'Mademoiselle';
echo $civilite2;
}
else
{
if($_POST['lstcivilite']==2)
{
$civilite2 = 'Madame';
echo $civilite2;
}
else
{
if ($_POST['lstcivilite']==3)
{
$civilite2 = 'Monsieur';
echo $civilite2;
}
}
}
?></p>
<p>Votre e-mail : <?php echo $_POST['mail']; ?></p>
<?php
if($_POST['txttel']!=0 && $_POST['txttel2']!=0 && $_POST['txttel3']!=0 && $_POST['txttel4']!=0 && $_POST['txttel5']!=0)
{
$tel = $_POST['txttel'].".".$_POST['txttel2'].".".$_POST['txttel3'].".".$_POST['txttel4'].".".$_POST['txttel5'];
}
?>
<p>Votre numéro de téléphone : <?php echo $_POST['txttel'].".".$_POST['txttel2'].".".$_POST['txttel3'].".".$_POST['txttel4'].".".$_POST['txttel5']; ?></p>
<p>Votre message : <?php echo $_POST['txtmsg']; ?></p>
<input type="hidden" value="<?php echo $_POST['txtnom']; ?>" name="txtnom2" />
<input type="hidden" value="<?php echo $_POST['txtpnom']; ?>" name="txtpnom2" />
<input type="hidden" value="<?php echo $civilite2; ?>" name="txtcivilite2" />
<input type="hidden" value="<?php echo $_POST['mail']; ?>" name="mail2" />
<input type="hidden" value="<?php echo $_POST['txttel']; ?>" name="txttel12" />
<input type="hidden" value="<?php echo $_POST['txttel2']; ?>" name="txttel22" />
<input type="hidden" value="<?php echo $_POST['txttel3']; ?>" name="txttel32" />
<input type="hidden" value="<?php echo $_POST['txttel4']; ?>" name="txttel42" />
<input type="hidden" value="<?php echo $_POST['txttel5']; ?>" name="txttel52" />
<input type="hidden" value="<?php echo $_POST['txtmsg']; ?>" name="txtmsg2" />
<br />
<table>
<tr>
<td><center><input type="submit" name="valider" value="Envoyer" /></center></td>
<td><center><input type="button" value="Annuler" onClick='self.close()' /></center></td>
</tr>
</table>
</form><br />
</div>
</body>
--------------------------->confirmer.php (qui détermine l'envoi ou non après choix dans la pop-up)
<?php
if (isset($_POST['valider']))
{
echo '<script>alert("test1");</script>';
$to = "truk@truk.truk";
$header="";
if (isset($_POST['mail2']) && !empty($_POST['mail2']))
{
$mail = $_POST['mail2'];
}
else
{
$mail = "";
}
if (isset ($_POST['txttel12']) && isset($_POST['txttel22']) && isset($_POST['txttel32']) && isset($_POST['txttel42']) && isset($_POST['txttel52']) && !empty($_POST['txttel12']) && !empty($_POST['txttel22']) && !empty($_POST['txttel32']) && !empty($_POST['txttel42']) && !empty($_POST['txttel52']))
{
$tel = $_POST['txttel12'].$_POST['txttel22'].$_POST['txttel32'].$_POST['txttel42'].$_POST['txttel52'];
}
else
{
$tel = "";
}
if (isset($_POST['txtnom2']) && !empty($_POST['txtnom2']) && isset($_POST['txtpnom2']) && !empty($_POST['txtpnom2']))
{
$nom = $_POST['txtnom2'];
$pnom = $_POST['txtpnom2'];
if ($mail != "" && $tel = "")
{
$stock = 1;
}
else
{
if ($mail =="" && $tel != "")
{
$stock = 2;
}
else
{
if ($mail != "" && $tel != "")
{
$stock = 3;
}
else
{
$stock = 4;
}
}
}
}
else
{
$stock = 5;
}
if ($stock != 5)
{
if (isset($_POST['txtcivilite2']) && !empty($_POST['txtcivilite2']))
{
$civilite = $_POST['txtcivilite2'];
}
else
{
$civilite = "";
}
if(isset($_POST['txtmsg2']) && !empty($_POST['txtmsg2']))
{
$msg = $_POST['txtmsg2'];
}
else
{
$msg="";
}
switch ($stock)
{
case '1': // nom + pnom + mail
$header = $nom." ".$pnom." <".$mail.">";
$header ="From: ".$header."\r\n"."Reply-To: ".$header."\r\n"."X-Mailer: PHP/".phpversion();
mail ($to, $msg, $header);
echo '<script>alert("votre message à bien été envoyé.")</script>';
echo '<script>window.location.replace("../index.php?num=2");</script>';
break;
case '2': // nom + pnom + tel
$header = $nom." ".$pnom." <".$tel.">";
$header ="From: ".$header."\r\n"."Reply-To: ".$header."\r\n"."X-Mailer: PHP/".phpversion();
mail ($to, $msg, $header);
echo '<script>alert("votre message à bien été envoyé.")</script>';
break;
case '3': // nom + pnom + mail + tel
$header = $nom." ".$pnom." <".$mail."> "."<".$tel.">";
$header ="From: ".$header."\r\n"."Reply-To: ".$header."\r\n"."X-Mailer: PHP/".phpversion();
mail ($to, $msg, $header);
echo '<script>alert("votre message à bien été envoyé.")</script>';
break;
}
}
}
elseif($_POST['annuler'])
{
}
?>
Et la fonction js que j' "include" dans chaque page
function check() //Vérification des champs (envoi du mail) + ouverture dans un pop-up.
{
var msg = "";
if ((document.formconfirm.mail.value != "") || (document.formconfirm.mail.value != "Votre adresse e-mail"))
{
indexAroba = document.formconfirm.mail.value.indexOf('@');
indexPoint = document.formconfirm.mail.value.indexOf('.');
if ((indexAroba < 0) || (indexPoint < 0))
{
document.formconfirm.mail.style.backgroundColor = "#4343FE";
msg += "Le mail est incorrect\n";
}
}
else
{
if ((document.formconfirm.mail.value == "") || (document.formconfirm.mail.value == "Votre adresse e-mail"))
{
if ((document.formconfirm.txttel.value == "") || (document.formconfirm.txttel2.value == "") || (document.formconfirm.txttel3.value == "") || (document.formconfirm.txttel4.value == "") || (document.formconfirm.txttel5.value == ""))
{
document.formconfirm.mail.style.backgroundColor = "#4343FE";
msg += "Veuillez saisir votre mail.\n";
}
}
}
if ((document.formconfirm.txtnom.value == "") || (document.formconfirm.txtnom.value == "Votre nom"))
{
msg += "Veuillez saisir votre nom\n";
document.formconfirm.txtnom.style.backgroundColor = "#4343FE";
}
if ((document.formconfirm.txtpnom.value == "") || (document.formconfirm.txtpnom.value == "Votre prénom"))
{
msg += "Veuillez saisir votre prenom\n";
document.formconfirm.txtpnom.style.backgroundColor = "#4343FE";
}
if (document.formconfirm.lstcivilite.value == 0)
{
msg += "Veuillez sélectionner votre civilité\n";
document.formconfirm.lstcivilite.style.backgroundColor = "#4343FE";
}
if ((document.formconfirm.txttel.value == "") || (document.formconfirm.txttel2.value == "") || (document.formconfirm.txttel3.value == "") || (document.formconfirm.txttel4.value == "") || (document.formconfirm.txttel5.value == ""))
{
if ((document.formconfirm.mail.value == "") || (document.formconfirm.mail.value == "Votre adresse e-mail"))
{
msg += "Veuillez vérifier votre numéro de téléphone\n";
if (document.formconfirm.txttel.value == "")
{
document.formconfirm.txttel.style.backgroundColor = "#4343FE";
}
if (document.formconfirm.txttel2.value == "")
{
document.formconfirm.txttel2.style.backgroundColor = "#4343FE";
}
if (document.formconfirm.txttel3.value == "")
{
document.formconfirm.txttel3.style.backgroundColor = "#4343FE";
}
if (document.formconfirm.txttel4.value == "")
{
document.formconfirm.txttel4.style.backgroundColor = "#4343FE";
}
if (document.formconfirm.txttel5.value == "")
{
document.formconfirm.txttel5.style.backgroundColor = "#4343FE";
}
}
}
if (document.formconfirm.txtmsg.value == "")
{
msg += "Veuillez saisir votre message\n";
document.formconfirm.txtmsg.style.backgroundColor = "#4343FE";
}
if (msg != "")
{
alert(msg);
window.location.replace("../index.php?num=5");
return(false);
}
else
{
my_form = eval(document.formconfirm)
alert("dfjkghdfjkghdfjkghdfjkgdf");
window.open('PHP/pageconfirm.php', 'popup', 'height=1000,width=1000,menubar=no,toolbar=no,location=no,status=no,scrollbars=no');
my_form.target = "popup";
my_form.submit();
return(true);
}
qui permet donc de vérfier tout les champs
Bon voilà vous avez tout...je sais que cela fait mais si c la seule chose pour expliquer mn souci..merci bcp
index.php
<body> <div id="haut"> </div> <div id="gauche"> <div id="menu"> <li><a href="index.php?num=5">Nous contacter</a></li> </div> </div> <div id="droite"> <?php if (!isset($_GET['num'])) { $num=1; } else { $num=$_GET['num']; } switch ($num) { case '1' : include("PHP/accueil.php"); break; case '5' : include("PHP/nouscontacter.php"); break; default : include("PHP/redirection.php"); break; } ?> </div> <div id="bas"></div> </body>
----------------> nous contacter.php (qui contient donc le formulaire principal)
<h1>Nous contacter</h1> <h3 class="info"><center>Tout les champs sont obligatoires sauf indication contraire.</center></h3> <hr></hr><br /> <form action="PHP/pageconfirm.php" method="POST" name="formconfirm" onsubmit="javascript:check(this);" enctype="application/x-www-form-urlencoded"> <table border="0" align="center" width="80%"> <tr> <td align="center"><input type="text" name="txtnom" value="<?php if(isset($_POST['txtnom']) && !empty($_POST['txtnom'])) {echo $_POST['txtnom'];} else {echo 'Votre nom';} ?>" size="20" onclick="this.value=''" onKeyUp="javascript:couleur(this);" /></td> <td align="center"><input type="text" name="txtpnom" value="<?php if(isset($_POST['txtpnom']) && !empty($_POST['txtpnom'])) {echo $_POST['txtpnom'];} else {echo 'Votre prénom';} ?>" size="20" onclick="this.value=''" onKeyUp="javascript:couleur(this);" /></td> </tr> </table><br /> <table border="0" align="center" width="80%"> <tr> <td align="center" colspan="2"> <select name="lstcivilite" onKeyUp="javascript:couleur(this);"> <option value="0" selected>Votre civilité</option> <option value="1">Mademoiselle</option> <option value="2">Madame</option> <option value="3">Monsieur</option> </select> </td> </tr> </table><br /><hr></hr> <table border="0" align="center" width="50%"> <tr> <td colspan="3" align="center"><input type="text" name="mail" onKeyUp="javascript:couleur(this);" value="<?php if(isset($_POST['mail']) && !empty($_POST['mail'])) {echo $_POST['mail'];} else {echo 'Votre adresse e-mail';} ?>" onclick="this.value=''" /></td> </tr> </table><br /> <table border="0" align="center" width="50%"> <tr> <td align="center">Numéro de téléphone<sup>(1)</sup></td> </tr> <tr> <td align="center"> <input type="int" name="txttel" size="1" maxlength="2" onkeyup="suivant(this,'txttel2',2); javascript:couleur(this);" /> . <input type="int" name="txttel2" size="1" maxlength="2" onkeyup="suivant(this,'txttel3',2); javascript:couleur(this);" /> . <input type="int" name="txttel3" size="1" maxlength="2" onkeyup="suivant(this,'txttel4',2); javascript:couleur(this);" /> . <input type="int" name="txttel4" size="1" maxlength="2" onkeyup="suivant(this,'txttel5',2); javascript:couleur(this);" /> . <input type="int" name="txttel5" size="1" maxlength="2" onKeyUp="javascript:couleur(this);" /> </td> </tr> </table><br /> <table width="90%" align="center"><tr><td><h3 class="info"><sup>(1)</sup> Pour nous permettre de vous contacter, la saisie d'un champ au minimum sur les deux précédents (mail et téléphone) est obligatoire. Bien sûr vous pouvez renseigner les deux champs.</h3></td></tr></table><br /> <hr></hr><br /> <table border="0" align="center" width="50%"> <tr> <td align="center">Message</td> </tr> <tr> <td align="center"><textarea name="txtmsg" value="<?php if(isset($_POST['txtmsg']) && !empty($_POST['txtmsg'])) {echo $_POST['txtmsg'];} else {echo 'Tapez votre message ici';} ?>" rows="10" cols="50" onKeyUp="javascript:couleur(this);"></textarea></td> </tr> </table><br /> <table border="0" align="center" width="50%"> <tr> <td align="center"><input type="submit" value="Prévisualiser" /></td> <td align="center"><input type="reset" value="Annuler" /></td> </tr> </table> </form><br /><br />
-----------------------> pageconfirm.php (à ouvrir dans la pop-up)
<body>
<div id="confirmdonnees">
<form action="confirmer.php" method="POST" enctype="multipart/form-data" onreset="javascript: ;">
<h1>Confirmation des données saisies</h1>
<p>Votre nom : <?php echo $_POST['txtnom']; ?></p>
<p>Votre prénom : <?php echo $_POST['txtpnom']; ?></p>
<p>Votre civilité :
<?php
if ($_POST['lstcivilite']==1)
{
$civilite2 = 'Mademoiselle';
echo $civilite2;
}
else
{
if($_POST['lstcivilite']==2)
{
$civilite2 = 'Madame';
echo $civilite2;
}
else
{
if ($_POST['lstcivilite']==3)
{
$civilite2 = 'Monsieur';
echo $civilite2;
}
}
}
?></p>
<p>Votre e-mail : <?php echo $_POST['mail']; ?></p>
<?php
if($_POST['txttel']!=0 && $_POST['txttel2']!=0 && $_POST['txttel3']!=0 && $_POST['txttel4']!=0 && $_POST['txttel5']!=0)
{
$tel = $_POST['txttel'].".".$_POST['txttel2'].".".$_POST['txttel3'].".".$_POST['txttel4'].".".$_POST['txttel5'];
}
?>
<p>Votre numéro de téléphone : <?php echo $_POST['txttel'].".".$_POST['txttel2'].".".$_POST['txttel3'].".".$_POST['txttel4'].".".$_POST['txttel5']; ?></p>
<p>Votre message : <?php echo $_POST['txtmsg']; ?></p>
<input type="hidden" value="<?php echo $_POST['txtnom']; ?>" name="txtnom2" />
<input type="hidden" value="<?php echo $_POST['txtpnom']; ?>" name="txtpnom2" />
<input type="hidden" value="<?php echo $civilite2; ?>" name="txtcivilite2" />
<input type="hidden" value="<?php echo $_POST['mail']; ?>" name="mail2" />
<input type="hidden" value="<?php echo $_POST['txttel']; ?>" name="txttel12" />
<input type="hidden" value="<?php echo $_POST['txttel2']; ?>" name="txttel22" />
<input type="hidden" value="<?php echo $_POST['txttel3']; ?>" name="txttel32" />
<input type="hidden" value="<?php echo $_POST['txttel4']; ?>" name="txttel42" />
<input type="hidden" value="<?php echo $_POST['txttel5']; ?>" name="txttel52" />
<input type="hidden" value="<?php echo $_POST['txtmsg']; ?>" name="txtmsg2" />
<br />
<table>
<tr>
<td><center><input type="submit" name="valider" value="Envoyer" /></center></td>
<td><center><input type="button" value="Annuler" onClick='self.close()' /></center></td>
</tr>
</table>
</form><br />
</div>
</body>
--------------------------->confirmer.php (qui détermine l'envoi ou non après choix dans la pop-up)
<?php
if (isset($_POST['valider']))
{
echo '<script>alert("test1");</script>';
$to = "truk@truk.truk";
$header="";
if (isset($_POST['mail2']) && !empty($_POST['mail2']))
{
$mail = $_POST['mail2'];
}
else
{
$mail = "";
}
if (isset ($_POST['txttel12']) && isset($_POST['txttel22']) && isset($_POST['txttel32']) && isset($_POST['txttel42']) && isset($_POST['txttel52']) && !empty($_POST['txttel12']) && !empty($_POST['txttel22']) && !empty($_POST['txttel32']) && !empty($_POST['txttel42']) && !empty($_POST['txttel52']))
{
$tel = $_POST['txttel12'].$_POST['txttel22'].$_POST['txttel32'].$_POST['txttel42'].$_POST['txttel52'];
}
else
{
$tel = "";
}
if (isset($_POST['txtnom2']) && !empty($_POST['txtnom2']) && isset($_POST['txtpnom2']) && !empty($_POST['txtpnom2']))
{
$nom = $_POST['txtnom2'];
$pnom = $_POST['txtpnom2'];
if ($mail != "" && $tel = "")
{
$stock = 1;
}
else
{
if ($mail =="" && $tel != "")
{
$stock = 2;
}
else
{
if ($mail != "" && $tel != "")
{
$stock = 3;
}
else
{
$stock = 4;
}
}
}
}
else
{
$stock = 5;
}
if ($stock != 5)
{
if (isset($_POST['txtcivilite2']) && !empty($_POST['txtcivilite2']))
{
$civilite = $_POST['txtcivilite2'];
}
else
{
$civilite = "";
}
if(isset($_POST['txtmsg2']) && !empty($_POST['txtmsg2']))
{
$msg = $_POST['txtmsg2'];
}
else
{
$msg="";
}
switch ($stock)
{
case '1': // nom + pnom + mail
$header = $nom." ".$pnom." <".$mail.">";
$header ="From: ".$header."\r\n"."Reply-To: ".$header."\r\n"."X-Mailer: PHP/".phpversion();
mail ($to, $msg, $header);
echo '<script>alert("votre message à bien été envoyé.")</script>';
echo '<script>window.location.replace("../index.php?num=2");</script>';
break;
case '2': // nom + pnom + tel
$header = $nom." ".$pnom." <".$tel.">";
$header ="From: ".$header."\r\n"."Reply-To: ".$header."\r\n"."X-Mailer: PHP/".phpversion();
mail ($to, $msg, $header);
echo '<script>alert("votre message à bien été envoyé.")</script>';
break;
case '3': // nom + pnom + mail + tel
$header = $nom." ".$pnom." <".$mail."> "."<".$tel.">";
$header ="From: ".$header."\r\n"."Reply-To: ".$header."\r\n"."X-Mailer: PHP/".phpversion();
mail ($to, $msg, $header);
echo '<script>alert("votre message à bien été envoyé.")</script>';
break;
}
}
}
elseif($_POST['annuler'])
{
}
?>
Et la fonction js que j' "include" dans chaque page
function check() //Vérification des champs (envoi du mail) + ouverture dans un pop-up.
{
var msg = "";
if ((document.formconfirm.mail.value != "") || (document.formconfirm.mail.value != "Votre adresse e-mail"))
{
indexAroba = document.formconfirm.mail.value.indexOf('@');
indexPoint = document.formconfirm.mail.value.indexOf('.');
if ((indexAroba < 0) || (indexPoint < 0))
{
document.formconfirm.mail.style.backgroundColor = "#4343FE";
msg += "Le mail est incorrect\n";
}
}
else
{
if ((document.formconfirm.mail.value == "") || (document.formconfirm.mail.value == "Votre adresse e-mail"))
{
if ((document.formconfirm.txttel.value == "") || (document.formconfirm.txttel2.value == "") || (document.formconfirm.txttel3.value == "") || (document.formconfirm.txttel4.value == "") || (document.formconfirm.txttel5.value == ""))
{
document.formconfirm.mail.style.backgroundColor = "#4343FE";
msg += "Veuillez saisir votre mail.\n";
}
}
}
if ((document.formconfirm.txtnom.value == "") || (document.formconfirm.txtnom.value == "Votre nom"))
{
msg += "Veuillez saisir votre nom\n";
document.formconfirm.txtnom.style.backgroundColor = "#4343FE";
}
if ((document.formconfirm.txtpnom.value == "") || (document.formconfirm.txtpnom.value == "Votre prénom"))
{
msg += "Veuillez saisir votre prenom\n";
document.formconfirm.txtpnom.style.backgroundColor = "#4343FE";
}
if (document.formconfirm.lstcivilite.value == 0)
{
msg += "Veuillez sélectionner votre civilité\n";
document.formconfirm.lstcivilite.style.backgroundColor = "#4343FE";
}
if ((document.formconfirm.txttel.value == "") || (document.formconfirm.txttel2.value == "") || (document.formconfirm.txttel3.value == "") || (document.formconfirm.txttel4.value == "") || (document.formconfirm.txttel5.value == ""))
{
if ((document.formconfirm.mail.value == "") || (document.formconfirm.mail.value == "Votre adresse e-mail"))
{
msg += "Veuillez vérifier votre numéro de téléphone\n";
if (document.formconfirm.txttel.value == "")
{
document.formconfirm.txttel.style.backgroundColor = "#4343FE";
}
if (document.formconfirm.txttel2.value == "")
{
document.formconfirm.txttel2.style.backgroundColor = "#4343FE";
}
if (document.formconfirm.txttel3.value == "")
{
document.formconfirm.txttel3.style.backgroundColor = "#4343FE";
}
if (document.formconfirm.txttel4.value == "")
{
document.formconfirm.txttel4.style.backgroundColor = "#4343FE";
}
if (document.formconfirm.txttel5.value == "")
{
document.formconfirm.txttel5.style.backgroundColor = "#4343FE";
}
}
}
if (document.formconfirm.txtmsg.value == "")
{
msg += "Veuillez saisir votre message\n";
document.formconfirm.txtmsg.style.backgroundColor = "#4343FE";
}
if (msg != "")
{
alert(msg);
window.location.replace("../index.php?num=5");
return(false);
}
else
{
my_form = eval(document.formconfirm)
alert("dfjkghdfjkghdfjkghdfjkgdf");
window.open('PHP/pageconfirm.php', 'popup', 'height=1000,width=1000,menubar=no,toolbar=no,location=no,status=no,scrollbars=no');
my_form.target = "popup";
my_form.submit();
return(true);
}
qui permet donc de vérfier tout les champs
Bon voilà vous avez tout...je sais que cela fait mais si c la seule chose pour expliquer mn souci..merci bcp
Je ne sais pas si ca viens d'une erreur de copier coller, mais il manque une } à ton javascript.
une fois rajouté, qd je clique sur "prévisualiser" j'ai le message "dfjkghdfjkghdfjkghdfjkgdf" qui s'affiche et une popup est bien ouverte avec les données saisies.
une fois rajouté, qd je clique sur "prévisualiser" j'ai le message "dfjkghdfjkghdfjkghdfjkgdf" qui s'affiche et une popup est bien ouverte avec les données saisies.
ça aurait été trop beau : /
erreur de copié collé..c'était bien à la fin ? 2 '}' au lieu d'un ?
Sinon les erreurs st diverses, la pop-up fonctionne bien dans certains cas, cela dépend du action du formulaire principal..
C'est comme un cercle vicieux cette affaire, un truck fonctionne mais pas un autre, mais si je retire une chose, ici l'action, ce qui ne marchai pas fonctionne, mais ce qui fonctionnais ne fonctionne plus !! à s'en arracher les cheveux..heureusement ils sont trop court...lol.chui désespéré.
erreur de copié collé..c'était bien à la fin ? 2 '}' au lieu d'un ?
Sinon les erreurs st diverses, la pop-up fonctionne bien dans certains cas, cela dépend du action du formulaire principal..
C'est comme un cercle vicieux cette affaire, un truck fonctionne mais pas un autre, mais si je retire une chose, ici l'action, ce qui ne marchai pas fonctionne, mais ce qui fonctionnais ne fonctionne plus !! à s'en arracher les cheveux..heureusement ils sont trop court...lol.chui désespéré.
je suis en train de chercher, vis a vis de la fonction js, elle retourne la valeur "true" si c'est bon sinon "false"
Ne peut-on pas récupérer cette valeur, et si la fonction retourne true, on affiche dans le action="pagesouhaité" , sinon si faux, nous mettons action à vide?
je cherche mais pas beaucoup de sites français à ce sujet :/
Ne peut-on pas récupérer cette valeur, et si la fonction retourne true, on affiche dans le action="pagesouhaité" , sinon si faux, nous mettons action à vide?
je cherche mais pas beaucoup de sites français à ce sujet :/
Bonne soirée à tous