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 :

Détecter le clic sur un bouton


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de Gizmil
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Points : 60
    Points
    60
    Par défaut Détecter le clic sur un bouton
    Hello ! J'espère que je poste au bon endroit !!

    Voilà, je vous explique mon petit souci !

    En fait, je m'y connais peu en php mais j'aimerais charger dynamiquement un contenu dans une page web. Il y a donc un contenu invariable (les menus) et un contenu variable. Ce contenu variable change en fonction des boutons sur lesquels on appuie (jusque là, c'est le principe d'un site web dynamique). Chaque bouton envoie une valeur dans une variable appelée "contenu". Du coup, lorsqu'on clique sur un bouton, la page se recharge en prenant en compte la valeur implémentée dans cette variable, le naviguateur sait ainsi quel contenu charger.

    Voilà comment j'implémente la valeur de ma variable $contenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="fr_body.php?contenu=galeries">GALERIES</a>
    Je voudrais néanmoins qu'un contenu par défaut soit chargé lorsqu'on arrive depuis l'extérieur sur la page d'index de mon site, c'est à dire la page d'accueil. Comment faire ?

    Car si j'écris bêtement dans mon code : $contenu="accueil" dans ma balise <head></head>, par exemple, et que je veux ensuite visiter le site, le naviguateur ne prendra pas en compte la valeur implémentée lors du clic de bouton mais bien celle inscrite dans ma balise <head>. Le naviguateur chargera alors constamment le contenu accueil, quel que soit le bouton sur lequel on pousse.

    Pour éviter ça, j'aimerais créer une condition "if" qui vérifie si le site web a déjà été visité ou non !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(visitSite==undefined){
    $contenu="accueil"
    }
    Voilà ! Ma question, c'est : comment faire prendre une valeur (n'importe quelle valeur, du moment que ce n'est pas undefined) à ma variable $visitSite lorsque je pousse un bouton ?

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 705
    Points
    705
    Par défaut
    Bonjour,

    Tu peux faire quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $contenu = "accueil";
    if (isset ($_GET['contenu']) && $_GET['contenu'])
       $contenu = $_GET['contenu'];
    Ceci dit, ceci nécessite un rechargement de la page à chaque clique... Regarde du coté du javascript et de jQuery particulièrement. Tu verras que tu pourras changer tes menus sans recharger la page.

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    En version courte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenu = isset ($_GET['contenu']) ? $_GET['contenu'] : "accueil";

    Attention aux failles d'inclusion.
    Ne pas faire ensuite du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // interdit
    include ($accueil .'.php');

  4. #4
    Membre du Club Avatar de Gizmil
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Points : 60
    Points
    60
    Par défaut
    Super, merci ! C'est effectivement plus simple de tester directement la valeur de $contenu, j'aurais dû y penser !! Cela dit, après avoir lu la définition de isset, je ne comprend pas trop ces deux syntaxes !

    Que signifie le $_GET ? Est-ce une variable ?

    Que signifie $_GET['contenu']

    Pourquoi cette répétition ?
    isset ($_GET['contenu']) && $_GET['contenu'])

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 705
    Points
    705
    Par défaut
    Citation Envoyé par Gizmil Voir le message
    après avoir lu la définition de isset, je ne comprend pas trop ces deux syntaxes !
    La fonction isset teste si une variable existe. C'est à dire, si tu a déclaré quelque part la variable $v par exemple avec la ligne $v = 10;, alors la fonction isset ($v) va retourner true.
    L'autre cas d'utilisation courante de isset c'est pour savoir si une clé existe dans un tableau. Si isset ($montableau['macle']) retourne true alors cette variable existe...

    Que signifie le $_GET ? Est-ce une variable ?
    C'est le tableau qui contient toutes les variables passées en http par la méthode get, soit toutes les variables de ton url.

    Que signifie $_GET['contenu']
    Retourne la variable 'contenu' passée en, get... Dans ton exemple avec l'appel à la page ~/fr_body.php?contenu=galeries, $_GET['contenu'] vaut 'galeries'.

    Pourquoi cette répétition ?
    isset ($_GET['contenu']) && $_GET['contenu'])
    isset comme dit plus haut, indique que la variable existe, mais celle-ci peut-être nulle. Surtout dans les variables GET.
    Par exemple avec l'appel à la page ~/fr_body.php?conten, isset ($_GET['contenu']) va retourner true mais $_GET['contenu'] false...

    Un petit conseil sinon, va faire un petit tour dans la faq php... Cela repondra à pas mal de tes questions je pense.

  6. #6
    Membre du Club Avatar de Gizmil
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Points : 60
    Points
    60
    Par défaut
    Ok, merci à toi pour ton aide précieuse, Fallbot (je suis bien conscient de mes lacunes)!

    Et merci à tous ceux qui sont venus m'aider !!

    Problème résolu !

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

Discussions similaires

  1. [AC-2003] Détecter le clic sur un bouton de la barre d'outils
    Par Marin d'Eau Douce dans le forum VBA Access
    Réponses: 4
    Dernier message: 24/04/2012, 14h12
  2. Détecter un clic sur le bouton "Page précédente" : c'est possible.
    Par tetrab dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/12/2008, 16h23
  3. Changer la feuille de style a l aide d un clic sur un bouton
    Par jean_bobi dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/11/2005, 08h35
  4. pb sur le premier clic sur un bouton
    Par corwin44 dans le forum Access
    Réponses: 6
    Dernier message: 28/10/2005, 09h51
  5. Gérer les clics sur les boutons
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 08/02/2004, 15h34

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