Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Invité de passage
    Inscrit en
    novembre 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 21
    Points : 2
    Points
    2

    Par défaut 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

  2. #2
    Membre Expert
    Avatar de christele_r
    Femme Profil pro Christele Rubneau
    Responsable de service informatique
    Inscrit en
    novembre 2009
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Nom : Femme Christele Rubneau
    Âge : 66
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : novembre 2009
    Messages : 1 341
    Points : 2 456
    Points
    2 456

    Par défaut

    Bonjour,
    J'ais mal compris, ou tu veux stoquer les reference/identifiant
    il suffit que l'un des PHP appelé par le javascript reçoive en GET ces deux données et les mettent en session !
    ainsi tout les PHP auront l'info !

    Mais il faut faire cela avec soins pour ne pas écraser la valeur de session
    par exemple en utilisant
    Code :
    1
    2
    3
    4
    5
     
    <?php
    $lieu = (isset($_SESSION['lieu'])) ? $_SESSION['lieu'] : '';
    if ($lieu !="") echo "il y a dejas des données" ;
    ?>

  3. #3
    Invité de passage
    Inscrit en
    novembre 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 21
    Points : 2
    Points
    2

    Par défaut 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

  4. #4
    Membre Expert
    Avatar de christele_r
    Femme Profil pro Christele Rubneau
    Responsable de service informatique
    Inscrit en
    novembre 2009
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Nom : Femme Christele Rubneau
    Âge : 66
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : novembre 2009
    Messages : 1 341
    Points : 2 456
    Points
    2 456

    Par défaut

    Bien sur, tu conçoit mal les choses.

    1) Le session_start(); doit étre en premiére ligne du PHP principal
    2) il faut ne charger la session qu'une fois
    Code :
    1
    2
    3
    4
    if ($Ref !="") {
        $_SESSION['Ref_Session']=$Ref ;
        $Ref_Session=$Ref;
    }
    3) Ne pas employer header("refresh: 1 url=modif_annonce.php" );Bref réfléchis a ce qui se passe lors des chagements de page.
    A++
    Christele

  5. #5
    Invité de passage
    Inscrit en
    novembre 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 21
    Points : 2
    Points
    2

    Par défaut 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

  6. #6
    Membre Expert
    Avatar de christele_r
    Femme Profil pro Christele Rubneau
    Responsable de service informatique
    Inscrit en
    novembre 2009
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Nom : Femme Christele Rubneau
    Âge : 66
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : novembre 2009
    Messages : 1 341
    Points : 2 456
    Points
    2 456

    Par défaut

    Bonsoir,
    Donc tu n'appliques pas ce que je te demande, a savoir que lorsque la session est chargée on n' y touche plus ! surtout si $Ref =="")

    Tu ne semble pas comprendre ces mécanismes

    A++
    Christele

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •