IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Modifier variable de session dans un onclick


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Par défaut Modifier variable de session dans un onclick
    Bonjour.

    Mon probleme est... dans le titre !!
    Je voudrais faire un lien comme ca : <a onclick="<?php $_SESSION['recherche']=$crits ?>">...</a>" pour pouvoir modifier ma variable de session quand on clique sur un lien.

    J'ai besoin que ce changement s'effectue apres le chargement de la page du lien, c'est pourquoi je ne pense pas que du ajax s'impose.
    Je precise que je ne veux pas modifier ma variable au debut de la page php vers laquelle renvoie le lien.

    Pour l'instant quand j'écris ca tel quel il se passe un truc bizarre : ma variable est bien changée mais non pas quand on clique sur le lien mais au chargement de la page où se trouve le lien !!!

    Je ne sais pas quels outils il faut mettre en place pour ca... J'attends vos propositions !


    Merci d'avance.

  2. #2
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Je ne comprends pas pourquoi
    tu veux changer la variable $_SESSION,
    variable qui se trouve sur le serveur,
    entre deux requêtes vers le serveur.

    Mais, comme
    lorsque le client appelle la page sur laquelle se trouve le lien,
    le serveur interprète
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php $_SESSION['recherche']=$crits; ?>
    donc effectue l'affectation (trop tôt ?),
    et n'écrit rien dans la page html qui va être envoyée au client.
    Le lien sera alors :
    ce qui ne sert à rien.

    Et, que tu ne veux pas modifier la variable
    au début de la page php vers laquelle renvoie le lien (trop tard ?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="mapage.php?recherche=$crits">...</a>
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_GET['recherche'])) {
        session_start();
        $_SESSION['recherche']=$_GET['recherche'];
    }
    , AJAX serait peut-être la seule solution.

    Fred

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Par défaut Modifier variable de session dans un onclick
    Salut micetf et merci de ta réponse

    Voici un peu plus de détails.

    Cette variable de session $_SESSION["recherche"], comme tu l'auras sans doute compris, sert pour la recherche . J'ai une zone de texte de recherche qui prend pour valeur cette variable. Le "mode recherche" s'effectue en 2 temps :

    1/ on va sur la page de recherche générale pour afficher le début de chaque article (la valeur affichée dans la zone de texte - càd le mot cherché - peut être obtenue avec un $_POST). page : recherche.php

    2/ a partir de cette page de recherche on clique sur un des liens pour voir le detail de l'article. On est donc sur une 2eme page. Le $_POST ne marche plus pour donner a la zone de texte la valeur du mot cherché. Il me faut donc une variable de session : $_SESSION["recherche"]. Exemple de page : page_detail.php

    Là où ca se complique :
    Le lien dont je te parlais tout à l'heure est un lien qui fait parti de mon menu (il y en à une 10aine comme cela). La plupart de ces liens peuvent amener à des pages comme page_detail.php, càd une page que l'on peut afficher lorsqu'on est en "mode recherche" ou comme ici simplement à partir du menu. Si cette page est affichée à partir du "mode recherche", il faut que la valeur de ma zone de texte corresponde au texte cherché. Par contre si cette page est affichée à partir du lien du menu, je veux pouvoir attribuer une valeur par défaut à la zone de texte.
    Voila pourquoi je voulais faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a onclick="<?php $_SESSION['recherche']=$crits ?>">...</a>

    En espérant avoir été clair

  4. #4
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Utiliser la méthode GET pour transmettre le mot cherché,
    ne résoudrait-il pas ton problème ?
    Fred

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Par défaut variable de type GET
    Mais bon sang mais c'est bien sûr !! Mais pourquoi je n'y ai pas pensé avant !!

    Je vais voir de ce côté la et je te tiens au courant. En attendant on peut mettre [RESOLU]

    Et moi qui pensait que ca allait être compliqué !!


    Merci beaucoup Fred.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Par défaut Ajout d'un parametre dans un lien
    Salut !

    J'essaie de faire comme tu m'as dis, c'est-à-dire de passer un paramètre dans l'url pour le récupérer avec un $_GET.

    Voici ce que j'ai changé dans mes liens sur ma page recherche.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AVANT MODIF : href='activities.php?spk=".$_SESSION['lang']."&amp;wid=".$_SESSION['width']."'
    APRES MODIF : href='activities.php?spk=".$_SESSION['lang']."&amp;wid=".$_SESSION['width']."&amp;s=".$_SESSION['recherche']."'
    J'essaie de créer le parametre "s" mais le lien ne marche plus apres modification, je ne peux plus y accéder (avant ca marchait tres bien). Du coup je me demande s'il y a quelque chose de spécial à faire pour créer un paramètre.

    Merci d'avance

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Par défaut Quelques précisions...
    Pour répondre à "est-ce trop tôt" (de faire l'affectation lors du chargement de la page de recherche):
    Oui car mon menu s'affiche dans chaque page. Donc je peux encore être en "mode recherche" et comme mon menu est appelé, eh bien ma variable de session reprend sa valeur par défaut ($crits est ma valeur par défaut). Cela change donc la valeur de la zone de recherche en affichant un texte par défaut alors qu'il devrait s'afficher le texte cherché
    (Je rappelle que ma zone de recherche prend pour valeur celle de ma variable de session)


    Pour répondre à "est-ce trop tard" (de faire l'affectation directement dans la page du lien) :
    Je t'ai plus ou moins donné la réponse dans mon message juste avant. Non ce n'est pas trop tard c'est même pile le bon moment ! Mais le problème est le suivant : la page du lien sera de la forme page_detail.php. Si on y arrive depuis le "mode recherche", ma variable de session doit prendre une certaine valeur. Si on y arrive depuis le menu, ma variable de session doit prendre une autre valeur

    D'où mon problème...

    En espérant, une fois encore, avoir été clair. (??)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/06/2006, 09h26
  2. Réponses: 32
    Dernier message: 20/03/2006, 14h23
  3. Réponses: 8
    Dernier message: 06/02/2006, 16h38
  4. [Sécurité] variable de session dans url
    Par mussara dans le forum Langage
    Réponses: 2
    Dernier message: 07/01/2006, 22h53
  5. variables de session dans une popup
    Par erka dans le forum Langage
    Réponses: 7
    Dernier message: 26/11/2005, 19h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo