probleme de sessions entre 2 pages?

Eléphant du PHP | 181 Messages

26 sept. 2005, 10:32

bonjour et bon lundi... et oui faut recommencer a taffer et les problemes se posent a nouveaux...

donc petite mise en place :
je fais une application en php pour la gestion de stock d'une "cuisine".
je fais mes nouvelles commandes grace a un formulaire simple.
date,
etc...
mais pour rajouter des articles a cette commande, j'utilise un pop up ou on puet choisir nos articles a rajouter a la commande.

voici mon probleme:

je vois pas comment faire les liens entre la pop up et ma page principale? je suppose qu'il faut que j'utilise des sessions. mais comment dire a ma pop up de renvoyer a mon formulaire les donnees dont j'ai desoin???

est-ce que vous voyez ce que je dois faire???

merci d'avance

HD
Mammouth du PHP | 1181 Messages

26 sept. 2005, 10:38

fais une recherche sur le forum avec les mots cles : page parent (par exemple) en precisant "Rechercher tous les termes"
le sujet a deja ete traité maintes fois
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Eléphant du PHP | 181 Messages

26 sept. 2005, 10:39

a ok merci

j'ai essaye de chercher mais avec sessions et y'avait pas grande chose qui m'interessait pour les pop up

je vais voir

merci

Mammouth du PHP | 568 Messages

26 sept. 2005, 10:39

Les variables sessions ne réfléchissent pas s'il y a des pop_up ou non... quand tu valides ton formulaire dans la pop-up, tu créés une ou plusieurs variable sessions te permettant de conserver les choix, puis tu recharges la page "normal" (C'est du javascript... A partir du pop-up, tu y accèdes avec opener.location, un truc dans le genre).... Tu pourras y récupérer les variables sessions...

Et puis, quand à faire, ferme aussi la pop-up automatiquement :p...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphant du PHP | 181 Messages

26 sept. 2005, 11:00

donc c'est en javascript que je dois gerer la liaison des 2 fenetres???

encore et tjrs javascript :cry:

Mammouth du PHP | 568 Messages

26 sept. 2005, 11:11

donc c'est en javascript que je dois gerer la liaison des 2 fenetres???

encore et tjrs javascript :cry:
Tu est obligé de passer par là...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphant du PHP | 181 Messages

26 sept. 2005, 11:27

ok j'ai reussi a faire un passage de l'un vers l'autre

Code : Tout sélectionner

function page_parent() { opener.location.href = opener.location; self.close(); }
mais dans ma session il n'y a plus de variables...

la session existe mais pas les variables...

voicy mon code de pop up:

Code : Tout sélectionner

session_start(); $_SESSION['produit'] = $_GET['produit']; session_register($_SESSION['produit']);
et mon code javascropt ya juste ce qu'il y a en haut... faut il rajouter qqch pour lui dire de prendre mes variables de sessiones???

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

26 sept. 2005, 11:42

Un session_start() devrait suffire
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 181 Messages

26 sept. 2005, 11:46

mais dans ma session il faut que j'ai une variable avec l'id du produit, une varibale avec la quantite....

et ca je dois pas les declarer comme $_SESSION['produit'] et $_SESSION['quantite'] ????

Mammouth du PHP | 568 Messages

26 sept. 2005, 12:05

La ligne session_register n'est pas nécessaire...
Qu'est-ce que tu as si tu fais un echo $_SESSION['produit'] juste après :
$_SESSION['produit'] = $_GET['produit']; ?
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphant du PHP | 181 Messages

26 sept. 2005, 12:12

La ligne session_register n'est pas nécessaire...
Qu'est-ce que tu as si tu fais un echo $_SESSION['produit'] juste après :
$_SESSION['produit'] = $_GET['produit']; ?
j'ai rien justement...

comme je redirige ma page il n'a pas fait le $_get a mon avis c pour ca que c'est vide.

mais comment le forcer a mettre ma variable $_session['produit'] avec le produit selectionne???


code javascritp:

Code : Tout sélectionner

<script language="javascript"> function page_parent() { opener.location.href = opener.location; self.close(); } function recherche() { with (document.ajout) { val=type.options[type.selectedIndex].value; } window.location.replace("ajout_article.php?type_produit_id="+val);//chemin= chemin + fichier.php } </script>



code php:
<?php 
$type_produit_id = '';		if (!empty($_GET['type_produit_id'])) $type_produit_id = $_GET['type_produit_id'];
$produit = '';				if (!empty($_POST['produit'])) $produit = $_POST['produit'];
$quantite = '';				if (!empty($_POST['quantite'])) $quantite = $_POST['quantite'];

$sql_type = "select distinct (type_produit.type_produit_id), type_produit_nom from type_produit, produit where type_produit_actif = 1 
												and produit.type_produit_id =  type_produit.type_produit_id
												order by 2";
$req_type = mysql_query($sql_type) or die('Erreur SQL !<br>'.$sql_type.'<br>'.mysql_error());
$cols_type = mysql_num_rows($req_type); 

?>
&nbsp;
<p>&nbsp;</p>
<form name="ajout" method="post" action="nouveau.php">
  <table width="100%" >
    <tr>
      <td width="30%"><strong>Type d'article </strong></td>
      <td width="11%"><strong>D&eacute;signation</strong></td>
      <td width="59%"><strong>Quantit&eacute;</strong></td>
    </tr>
    <tr>
      <td><select name="type" onChange="recherche()">
	  	<option value="-1">Choisissez un type d'article</option>
			<?php
					for ($i=0;$i<$cols_type;$i++) {
						$type_id = mysql_result($req_type,$i,0);
						$type_nom = mysql_result($req_type,$i,1);
						if ($type_produit_id === $type_id) {
							echo "<option selected value="$type_id">$type_nom</option>";	
						}
						else {
							echo "<option value="$type_id">$type_nom</option>";	
						}
					}
	 if(isset($_GET['type_produit_id'])) {
	 	//$type_produit_id=$_GET['type_produit_id'];
		$sql_produit = "select produit_id, produit_designation from produit where produit_actif = 1
								and type_produit_id = '".$type_produit_id."'
								order by 2";
		$req_produit = mysql_query($sql_produit) or die('Erreur SQL !<br>'.$sql_produit.'<br>'.mysql_error());
		$cols_produit = mysql_num_rows($req_produit); 

			?>		

	  </select></td>
      <td><select name="produit">
	  	<option value="-1">Choisissez une désignation</option>
			<?php
					for ($i=0;$i<$cols_produit;$i++) {
						$produit_id = mysql_result($req_produit,$i,0);
						$produit_nom = mysql_result($req_produit,$i,1);
						if ($produit === $produit_id) {
							echo "<option selected value="$produit_id">$produit_nom</option>";	
						}
						else {
							echo "<option value="$produit_id">$produit_nom</option>";	
						}
					}
			?>		
      </select></td>
	  <?php }?>
      <td><input type="text" name="quantite" maxlength="10" value="<?php echo $quantite?>"></td>
    </tr>
    <tr>
      <td colspan="2"><div align="right">
        <p>&nbsp;          </p>
        <p>
		  <input type="submit" name="Submit" value="Ok" onClick="page_parent()">
            </p>
      </div></td>
      <td><p>&nbsp;
        </p>
        <p>
          <input name="" type="button" onClick="window.close()" value="Cancel">
        </p></td>
    </tr>
  </table>
</form>
je vois pas trop comment faire pour mettre ma variable $_session['produit'] avec le produit choisi... :roll:

Mammouth du PHP | 568 Messages

26 sept. 2005, 13:13

Voici le cheminement comme je le conçois...

Tu as ta page principale P1 qui ouvre une pop-up avec la page P2...

Dans P2, tu fais ton formulaire que tu valides et transmets à la page P3...

Dans P3, tu récupères les variables nécessaires du formulaire que tu inserts dans des variables sessions...

Puis tu recharges la page principale P1... Dans celle-ci, tu retrouves alors tes variables de sessions... C'est bien comme ça qque tu fonctionnes ?

Sinon, propose le code, des différentes page en définissant laquele et laquelle...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphant du PHP | 181 Messages

26 sept. 2005, 14:29

a ok j'avais pas penser a faire une ppage n°3 pour justement faire la validation du formulaire t mettre mes variables en sessions....

je vais tester comme ca et je te tiens au courant.

merci du conseil :wink:

Eléphant du PHP | 181 Messages

26 sept. 2005, 15:16

bon un dernier soucy... (enfin j'espere)

voila mes variables de sessions sont bien definit quant je passe a la page n°3...

mais comment puis je faire pour que la fenetre n°3 execute son code et se referme directement pour rafraichir le page n°1 avec les nouvelles donnees??

Mammouth du PHP | 568 Messages

26 sept. 2005, 15:37

Les données, elles sont dans les variables sessions... Donc accessible n'importe où, pour peu que tu commence ta page par un session_start() :p

Je pense que l'organisation de la dernière page de la pop-up, doit se faire comme ceci :
- code php de création des variables sessions
- début du code html avec dans le BODY onLoad :

-- Ouverture (ou rafraichissement de la page principale (opener))
-- et directement ensuite, la fermeture de la pop-up...

Pour ces 2 --, c'est donc un petit peu de javascript...

dans la page principale qui se recharge, tu mets en place une vérification de l'existence des variables sessions et, si elles existent, tu les utilisent comme bon te semble...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007