transmettre donnée vers popup

Eléphant du PHP | 83 Messages

02 avr. 2008, 11:41

bonjour
je voudrais que les données d'un formulaire soient transmises à une autre page confirmation
mais quand je transforme cette page confirmation en popup les données ne sont plus transmises


page 1

Code : Tout sélectionner

<SCRIPT language="javascript"> function ouvre_popup(page) { window.open(page,"nom_popup","menubar=yes, status=yes, scrollbars=yes, menubar=yes, width=520, height=200,left=215, top=330"); } </SCRIPT> </head> <body> <form id="form1" name="form1" method="post" action=" javascript:ouvre_popup('confirmation.php ' )"> <input name="essai" type="text" id="essai" /> <input type="submit" name="Submit" value="Envoyer" /> </form>
et sur la page confirmation je n'arrive pas à récupérer la valeur de essai

Pourquoi quelqu'un a t il une idée merci d'avance pur votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 avr. 2008, 11:46

Pour le pourquoi, c'est simplement parce que les données sont envoyée à l'url spécifiée dans l'attribut action du formulaire. Or toi, tu fais appel à une fonction js pour ouvrir une popup sans aucun rapport avec ton formulaire...

Il te faut soit ouvrir une nouvelle fenêtre (et pas une popup) avec un target="_blank" dans ton formulaire, soit que ta fonction javascript récupères les données de ton formulaire et les passe en get dans l'url de la page qu'elle ouvre...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

karen
Invité n'ayant pas de compte PHPfrance

02 avr. 2008, 14:03

bonjour
mais si j'ouvre une page en blank est ce que je peux imposer une longueur et une hauteur pour cette page qui s'ouvre et faire en sorte qu'elle soit petite

Eléphant du PHP | 422 Messages

02 avr. 2008, 14:39

Voici comment j'ai résolu ce genre de problème
<script>
function validate () {
  nom = document.frm_saisie.nom.value; // ou nom = document.getElementById('nom').value
  nom = encodeURIComponent(nom);
  prenom = document.frm_saisie.prenom.value;
  prenom = encodeURIComponent(prenom);
  wind = window.open('popup.php?nom='+nom+'&prenom='+prenom,
           'name','toolbar=0,location=0,directories=0,status=0,scrollbars=0,'+ //EDIT : Correction de l'erreur
           'resizable=1,copyhistory=0,menuBar=0,width=200,height=100');        //signalée par Ryle
  wind.focus();
}
</script>
<form name="frm_saisie">
  <input name="nom" id="nom" type="text" width="30"><br>
  <input name="prenom" id="prenom" type="text" width="30"><br>
  <input type=button value='Valider' onClick='validate();'>
</form>
Attention, comme c'est du passage en GET, la longueur est forcément limitée. Si tu veux les passer en POST, il faut regarder du côté de ce script
Modifié en dernier par caroube le 03 avr. 2008, 17:12, modifié 1 fois.

Eléphant du PHP | 83 Messages

02 avr. 2008, 20:09

bonjour
j'ai essayé ce que tu m'as dit mais rien ne se passe
il n'y a même pas le pop up qui s'ouvre
comment faire merci d'avance pour votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 avr. 2008, 01:05

Peut être que l'erreur javascript que tu obtiens et que tu as oublié de mentionner ou de contrôler joue un rôle dans le fait que ta popup ne s'ouvre pas.... :roll:

Javascript n'aime pas les retours à la ligne au milieu d'une chaine de caractères :wink:
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 83 Messages

03 avr. 2008, 16:27

bonjour
j'ai supprimé wind.focus(); et ça a marché
Merci à tous

Eléphant du PHP | 422 Messages

03 avr. 2008, 17:11

Javascript n'aime pas les retours à la ligne au milieu d'une chaine de caractères :wink:
Exact. Errreur de ma part pour faire de la mise en page pour le site.

C'est bizarre que le wind.focus() ne fonctionne pas ...