Variable session dans une boucle
Bonjour,
j'ai besoin d'un petit conseil.
J'ai une page index.php, dans laquelle, est en include une page listing.php.
Cette page listing.php, liste grace à une boucle while, une série de lignes issues d'une base de données.
Lorque je clique sur une ligne, un lien href crée par onclick une iframe avec plusieurs onglets.
Chacun des onglets étant une page php différente.
Jusque là, pas de problème majeur.
J'ai besoin de conserver au travers toutes ces pages, la référence/identifiant de la ligne sur laquelle j'ai cliqué dans ma page listing.php.
Je ne peux pas utiliser une variable get car je la perd à chaque changement d'onglet/page.
Je ne peux pas utiliser non plus de variable post car ma liste n'est pas un formulaire.
J'ai donc pensé à une variable de session
Mon problème, que je vous soumet, est comment faire pour créer cette variable de session qui stockera la référence/identifiant au moment du clique sur la ligne.
Jusque là tous mes essais, n'ont rien donné, si ce n'est que comme il s'agit d'une boucle, la variable de session qui est créée, conserve la référence de la dernière ligne.
Si quelqu'un a une idée, je suis preneur.
Avec mes remerciements
Alain
Pb Variable session dans une boucle
Bonjour,
Merci pour ta réponse,
L'idée est bonne, je la retiens, cependant, sauf si je n'ai pas tout compris ni tout essayé encore, elle m'oblige à diverses manipulations de variables mais le résultat est là.
Je te mets un exemple de mon code, pour que tu visualises mieux mon problème.
J'ai une page index.php dans laquelle en include une page listing.php.
Cette page listing.php est une liste d'annonces issues d'une base de données.
Je récupère cette liste avec une boucle while.
Dans cette boucle, je veux capturer la référence de cette annonce et la garder pour traitement sur toutes mes autres pages PHP.
En suivant ton exemple, voici comment je l'envoie en GET.
listing.php
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<?php
if(isset($_GET['Ref'])) { $Ref = $_GET['Ref']; } else { $Ref= "";}
while ($row = mysql_fetch_array($result))
{
...
echo " <a href='#' onclick='ouverture_fenetre(\"modif_annonce.php?Ref=$row[Numero_Annonce]\");' >";
echo " <img src='Images/Outils/modifier.png' title='Modifier l'annonce' border='0' alt='Modifier l'annonce' style='cursor:pointer' width='25' />";
echo " </a>";
}
?> |
Sur la page modif_annonce.php, je récupère bien la variable GET $Ref, mais je veux également la récupérer sur les autres pages PHP ce qui n'est pas possible avec GET.
Aussi je la copie dans une autre variable de session que je vais pouvoir récupérer dans les autres pages.
modif_annonce.php
Code:
1 2 3 4 5 6 7 8 9 10
|
<?php
session_start();
header("refresh: 1 url=modif_annonce.php" );
if(isset($_GET['Ref'])) {$Ref = $_GET['Ref']; } else { $Ref= "";} // Je récupère ma variable GET
if(isset($_SESSION['Ref_Session'])) { $Ref_Session = $_SESSION['Ref_Session']; } else { $Ref_Session= "";} // Je déclare ma variable de session
if (isset($_GET['Ref'])) {$_SESSION['Ref_Session']=$Ref ;} // Je transfère la valeur de la variable GET dans la variable de session
?> |
Le souci est que la variable de session n'est prise en compte au chargement, je suis donc obligé de faire un refresh, mais ce n'est pas important.
Avec mes remerciements pour ton conseil
Cordialement
Alain
Variable session dans une boucle
Bonjour Christèle,
Je viens d'essayer ta dernière solution, malheureusement elle ne fonctionne pas.
Lorsque je change de page, la variable est bien transmise, mais lorsque je veux revenir sur la page modif_annonce.php. La variable session a disparu, écrasée par $Ref qui se retrouve à vide.
Sinon, session_start est bien au début de la page.
Et le Refresh, en fait ne sert à rien.
Merci en tous cas pour ton aide.
Cordialement
Alain