Requete Select / while dans popup. Rafraichissement parent

Petit nouveau ! | 2 Messages

28 août 2014, 09:01

Bonjour Voici le détail de mon problème/besoin

J’ai actuellement un premier fichier nommé PAGE2.php dans lequel j’ouvre notamment un pop avec un envoi de variable dans l’URL :

PAGE2.PHP

Code : Tout sélectionner

<a href="#" onClick="window.open('./popup3.php?id=<?PHP echo $id;?>&id2=<?PHP echo $id2;?>', 'popup', 'toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, width=500, height=350,screenX=450,screenY=175')"> Ouvrir le popup </a><br> // plus bas dans ma page la récupération des données du formulaire : echo "1-<pre>"; print_r($_POST); // affichage du tableau pour visu $ref_article = $_POST['ref_article']; $nom_article = $_POST['nom_article']; $quantite=$_POST['quantite'] ; echo("<h3>les données reçues sont : </h3>"); for ($i=0;$i<sizeof($ref_article);$i++) { if (isset($ref_article[$i] )) { echo "ma référence Article: "; echo "$ref_article[$i], mon article est: $nom_article[$i], ma quantite est : $quantite[$i]"; echo "<br>"; } }
Les Variables sont récupérés dans mon Popup (popup3.php) pour lancer une requete de sélection avec bouche while :

Code : Tout sélectionner

///MA REQUETE …./// Et ma boucle avec mon formulaire de retour: echo '<form method="POST" action="page2.php" > '; echo '<table>'; $i= 0; while ($data= mysqli_fetch_assoc($resultat)) { $i++; echo " <tr> <td>Ref article :</td> <td><input type='text' name='ref_article[]' id='ref_article' value='".$data["ref_article"]."' tabindex='20'/></td> </tr> <tr> <td>Nom Article :</td> <td><input type='text' name='nom_article[]' id='nom_article' value='".$data["nom_article"]."' tabindex='20'/></td> </tr> <tr> <td>Quantite :</td> <td><input type='text' name='quantite[]' id='quantite' tabindex='20'/></td> </tr> "; } echo '</table><p><input type="submit" value="submit"></p> </form>'; }
Mon problème est que pour le moment l’envoi du formulaire ouvre la PAGE2.php dans ma fenêtre de popup sans toucher la fenêtre parente qui se trouve toujours en arrière plan.

J’ai longuement cherché une manière d’envoyer les variables dans ma fenêtre parent et de fermer le popup, mais cela ne fonctionne pas.

Les méthodes testées sont :
Déclaration de la fonction dans popup3.php :

Code : Tout sélectionner

<script language="JavaScript" type="text/javascript"> function ClosepopupAndRefreshparent() { window.opener.location.reload(); window.close(); } </script>
Et dans mon form :

Code : Tout sélectionner

echo '<form method="POST" action="page2.php" onSubmit="ClosepopupAndRefreshparent()";> ';
Ca rafraichit bien mon Parent et ca ferme mon popup, mais pas de données.

J’ai aussi testé sur le bouton Submit avec :

Code : Tout sélectionner

echo '</table><p><input type="submit" value="submit" onClick="ClosepopupAndRefreshparent()";></p>
Mais j’ai le même problème, le Parent se raraichit, le popup se ferme, mais pas de données sur ma page.

Auriez-vous une idée à me proposer ?

Merci d’avance

ynx
Mammouth du PHP | 586 Messages

28 août 2014, 10:40

Salut,

Une autre solution possible serait de remplacer ton popup par un appel ajax. Le contenu de ta popup serait donc chargé sur la même page et tu pourrais alors facilement interagir avec tous les éléments de cette page (une fois que le 2e formulaire est validé, on envoie une seconde requête ajax pour mettre à jour la première partie de la page).

Pour garder l'apparence d'un popup mais en restant sur la même page, tu peux utiliser une "fenêtre modal" en javascript (un exemple avec celle de bootstrap : http://getbootstrap.com/javascript/#modals).

Bonne journée