[PHP] variable de session

Fermé
irmuel - 1 févr. 2007 à 15:22
plop! Messages postés 54 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 16 mai 2007 - 1 févr. 2007 à 18:29
Bonjour,

je bute depuis quelques jours sur un problème.
J'ouvre une "popup" en cliquant sur un bouton dans une page php.
Cette popup est un petit formulaire à remplir.
Lorsque je clique sur un bouton valider de la popup, je dois récupérer les valeurs, fermer la popup et raffraichir la page parent avec ces valeurs.

J'arrive à appeler la popup.
J'arrive aussi à fermer cette popup ainsi qu'à raffraichir la page parent en passant par du Javascript. D'ailleurs, merci à la communauté CCM.

Par contre je n'arrive pas à passer mes valeurs à la page parent. Ni par la méthode post, ni par la méthode get.
J'ai pensé renseigner des variables de session, mais je ne sais pas comment faire.

Je vous mets ci dessous le code de la popup, si ça peut vous aider :
<HTML xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	
  <!-- Faire référence à la feuille de style CSS utilisée -->
  <LINK href="simo_style.css" rel="stylesheet" type="text/css">
  
  <!-- Entête de la page -->
  <HEAD>
    <TITLE>Selection des SIMOs</TITLE>
    <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <H1 class=titre>Selection des SIMOs</H1>
    <script language="javascript">
      function valider()
      {
				window.parent.opener.location.reload();
				self.close();
			}
    </script>
  </HEAD>
  
  <!-- Corps de la page(formulaire) -->
  <BODY>
		
		<FORM action="simo_portail.php" method="get">
  		
    	<!-- Affichage du champ de recherche de la région -->
    	<DIV class="lib_sel_gauche">Région</DIV>
    	<DIV><INPUT type="text" name="selreg" class="champ_sel_gauche"></DIV>
    	
    	<!-- Affichage du champ de recherche du secteur -->
  		<DIV><INPUT type="text" name="selsec" class="champ_sel_droite"></DIV>
    	<DIV class="lib_sel_droite">Secteur</DIV>
    	
    	<!-- Affichage du champ de recherche de l'agence -->
    	<DIV class="lib_sel_gauche">Agence</DIV>
    	<DIV><INPUT type="text" name="selage" class="champ_sel_gauche"></DIV>
    	
    	<!-- Affichage du champ de recherche du commercial -->
  		<DIV><INPUT type="text" name="selcom" class="champ_sel_droite"></DIV>
    	<DIV class="lib_sel_droite">Code Com.</DIV>
  		
    	<!-- Affichage du bouton 'Affichage des SIMOs' -->  		
    	<DIV class="cadre_droite"><LI>
    	<INPUT type="button" onclick="javascript:valider();" value="Aff.SIMOs">
    	</LI></DIV>
			
		</FORM
	
  </BODY>
  
</HTML>


Si il faut utiliser une méthode totalement différente, je suis preneur.

J'attends avec impatience vos réponses. Merci...
A voir également:

2 réponses

atomy Messages postés 442 Date d'inscription jeudi 25 janvier 2007 Statut Membre Dernière intervention 11 août 2009 92
1 févr. 2007 à 18:22
Salut,

Je crois que le GET ou le POST fonctionne sur une même fenêtre... pour passer d'une fenêtre à l'autre, je sais pas...

je crois aussi que le Javascript est lue avant le PHP... et avant de recharher... donc, si tu fermes la fenêtre avant de lire ton PHP......

Mais, avant de fermer ton pop-up... insère tes données dans une autre page... et met ton script Javascript... dans la deuxième fenêtre....
0
plop! Messages postés 54 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 16 mai 2007 27
1 févr. 2007 à 18:29
Tu n'a pas de bouton submit dans ton formulaire, donc les données ne seront pas envoyées.

Je ne connais pas le nom de tes pages, alors j'appelle:
index.php la page qui ouvrire la popup, et qui se fera rafraichir
popup.php la page contenant le formulaire
action.php la page qui va sauver les infos et recharger index.php

Ce qu'il faut que tu fasses :

Dans popup.php (le code source de ton message), change le type du BUTTON en INPUT type="submit" et supprime l'appel à la fonction valide() .
Change l'action du FORM en "action.php"

Crée une page action.php ainsi :

<?php
// accède/ouvre une session
session_start();
//recopie les données formulaires dans la session
foreach($_GET as $key => $val)
    $_SESSION[$key] = $val;
// recharge la page parente
?>
<script language="javascript">
	window.parent.opener.location.reload();
	self.close();
</script>


Enfin, dans index.php, après avoir fait appel à session_start() (qui doit être invoquée avant toute sortie texte (comme les headers), tu peux accéder aux données : $_SESSION['selreg'] , $_SESSION['selsec'] , ...
0