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

JavaScript Discussion :

Evenement sur un Onclick


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 51
    Points : 33
    Points
    33
    Par défaut Evenement sur un Onclick
    Bonjour a tous !

    Voici mon bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <A onclick="<?php session_destroy;?> javascript:window.location.reload();" onMouseOver="i596580.src='menu/deconnexion3.png'" onMouseOut="i596580.src='menu/deconnexion2.png'"><IMG SRC="menu/deconnexion2.png" BORDER=0 NAME="i596580" ALT="Déconnexion" HSPACE=0 VSPACE=0></A>
    Mon objectif est de pouvoir faire une fermeture de session ainsi qu'un refresh de la page en un seul clic.
    Ca fonctionne separement mais pas ensemble Comment devrais je m'y prendre ?

    Merci bien

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 140
    Points : 182
    Points
    182
    Par défaut
    Bonjour,

    d'après ce que je comprends de ton code, tu executes le destroy session en php lors de l'appel à la page. or il semble que tu veuilles que ca s'execute seulement apres le click.

    Tu peux simplement faire une balise de lien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="logout.php">Déconnexion</a>
    Ce lien pointerait vers une page php qui exécute alors au moment ou l'utilisateur clique sur le lien, le destroy de la session. Cette page de destroy peut tout à fait délogguer ton utilisateur puis le rediriger vers la page que tu souhaite afficher, créant ainsi le rafraichissement que tu souhaitais.

    exemple de destroy.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php 
    session_destroy;
    header("Location: mapagerafraichie.php");
    ?>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 51
    Points : 33
    Points
    33
    Par défaut
    J'avais egalement penser a ca et je vais utiliser cette solution qui me parait encore la plus simple !

    Merci d'avoir pris le temps de me donner ton avis !

  4. #4
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Bonjour,

    après un header de location, ne pas oublier de faire un exit, sinon le reste du code PHP est traité, ce qui pose problème d'une part pour la performance, et d'autre part parce qu'il peut y avoir d'autres header qui vont écraser le premier.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 162
    Points : 94
    Points
    94
    Par défaut
    Je dirai un gros 'houlala' quand je vois ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <A 
    onclick="<?php session_destroy;?> javascript:window.location.reload();" 
    onMouseOver="i596580.src='menu/deconnexion3.png'" 
    onMouseOut="i596580.src='menu/deconnexion2.png'"><IMG 
    SRC="menu/deconnexion2.png" 
    BORDER=0 
    NAME="i596580" 
    ALT="Déconnexion" 
    HSPACE=0 
    VSPACE=0>
    </A>
    Sémantiquement on met les tag html en minuscule, pour des questions de lisibilité (<a ... alt="" ...).

    On peut pas mettre du code php sur un onclick, le code php est executé coté server. Si tu veux une execution dynamique -> ajax

    Le border est maintenant a mettre dans un 'style="border:0;"'

    Ca fait au moins 10 ans que j'ai pas vu/utilisé un hspace / vspace...

  6. #6
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Puisqu'on parle de ça Pelloq, je fais juste la remarque que les histoires de majuscules ou minuscules ce n'est pas de la sémantique mais de la syntaxe, c'est-à-dire exactement le contraire. Je sais, je chipote, mais attention aux mots que tu emploies

    C'est vrai, Demonjhon a beaucoup de chemin a faire. Pourquoi ne l'aiderions-nous pas du mieux qu'on peut ? À propos de ce code PHP sur un onclick, puisqu’il s’agit d’un lien de déconnexion, pourquoi utiliser JavaScript ? Ce n’est rien de plus qu’un lien normal.
    Concrètement, on a une page PHP qui détruit la session, et le lien pointe simplement vers cette page.
    De plus, l'image contenue dans le lien n'est pas indispensable d'un point de vue fonctionnel, il est donc préférable de la placer dans les CSS.
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <a id="deco" href="deco.php">Déconnexion</a>
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #deco { background-image: url("menu/deconnexion2.png"); }
    #deco:hover { background-image: url("menu/deconnexion3.png"); }
    Voilà qui résoud le problème des bordures, et qui permet en 3 lignes seulement de faire un effet survol compatible avec tous les navigateurs à partir de IE6, le tout sans JS !

    De manière générale, il vaut mieux éviter autant que possible de placer du texte dans une image, car il ne peut pas être reconnu par les navigateurs en mode texte, les lecteurs d'écran, les robots des moteurs de recherche, etc. Autrement dit, le texte contenu dans les images n'est pas sémantique. C'est pourquoi j'ai rajouté le texte « Déconnexion » dans le lien à la place de l'image. Du coup Demnjhon, il faudra peut-être que tu modifies tes images.

    Je t'invite à te renseigner sur le balisage sémantique, tu y trouveras les clés pour concevoir un site web efficacement et ne pas utiliser les techniques obsolètes...

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

Discussions similaires

  1. 2 evenements sur un seul onclick..possible ou pas
    Par michka999 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/08/2006, 16h01
  2. Détruire un bouton sur son OnClick
    Par Volfoni dans le forum C++Builder
    Réponses: 5
    Dernier message: 08/06/2006, 12h00
  3. Evenement sur objet dynamique
    Par CanardJM dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 19/11/2004, 13h56
  4. Evenement sur les barres de défilement d'une ScrollBox
    Par Nico118 dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/05/2004, 14h56
  5. [FLASH MX 2004] [ecouteur] evenements sur un clip
    Par marco_ dans le forum Flash
    Réponses: 2
    Dernier message: 30/04/2004, 13h28

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