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 :

Ajax et url uniques avec Hash


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 61
    Par défaut Ajax et url uniques avec Hash
    Bonjour,

    J'ai un div dans ma page, appelé par un évenement click sur un lien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="mydiv" style="position:absolute; display:none">
    	<p>text du div</p>
    </div>
    le lien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:;" onclick="$('#mydiv').show().load('script.php')">lien</a>
    (sous Jquery)

    J'aimerais savoir s'il est possible d'avoir un lien du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="script.php" rel="XXXX">lien</a>
    pour utliser une hash #index de sorte que l'URL unique du genre http://www.monsite.com/#index permette d'accéder à la page avec le div déjà ouvert et le script.php chargé à l'intérieur.

    Je sais pas si c'est très clair

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    j'ai au moins une réponse à ta dernière question
    Citation Envoyé par sebnutt Voir le message
    Je sais pas si c'est très clair
    c'est Non !

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Peut-être un début de réponse : Ajax et le référencement.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 61
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Bonjour,
    j'ai au moins une réponse à ta dernière questionc'est Non !
    pour clarifier, comment obtenir une URL avec une ancre qui me permette, lorsque je charge la page dans mon navigateur, de faire apparaitre mon div ?

    par défaut, si je clique sur le lien, l'URL dans la barre d'adresses ne changera pas (à cause du href="javascript:;"). Comment faire pour obtenir une URL différente sachant que je ne peux rien mettre dans le href=""

  5. #5
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Ben au lieu de passer par une fonction "onclick", tu mets, dans le href, un lien contenant ancre qui aura un sens pour ton script et tu fais le traitement javascript lors du onload.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 61
    Par défaut
    Citation Envoyé par Loceka Voir le message
    Ben au lieu de passer par une fonction "onclick", tu mets, dans le href, un lien contenant ancre qui aura un sens pour ton script et tu fais le traitement javascript lors du onload.
    comment dans ce cas, dois-je rédiger mon href ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript: $('#mydiv').show().load('script.php')">
    ?

    où je mets mon hash # dans ce cas ?

  7. #7
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Côté HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <body onload="listenHash();">
      <!-- ... -->
      <a href="#mydiv">...</a>
      <!-- ... -->
    </body>

    Côté Javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function listenHash() {
      var divSelectionne = window.location.hash;
      if (divSelectionne && divSelectionne.length > 0) {
        // ton traitement.
      }
    }

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 61
    Par défaut
    Nickel, ça marche.
    Avec un bémol : quand je tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.monsite.com/#Nom_hash
    dans la barre d'URL je me retrouve bien avec mon traitement effectué sur ma page.

    par contre quand je clique sur le lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#Nom_hash">lien</a>
    il ne se passe rien.

  9. #9
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Effectivement, j'avais pas pensé au fait qu'avec le "hash" il ne recharge pas la page, c'est le navigateur qui fait le traitement.

    Au lieu d'utiliser un '#', je te conseille d'utiliser un argument standard ('?display=#mydiv' par exemple).
    Du coup c'est window.location.search qu'il faut utiliser.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 61
    Par défaut
    Adapté à ton code précédent ça donnerait quoi ?
    Parce que je viens de tester, sans succès, j'ai du louper un truc.

    EDIT : Ca marche si on met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onhashchange="listenHash()">

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 61
    Par défaut
    En résumé, pour ceux qui comme moi ont eu du mal à comprendre le fonctionnement :

    - on vérifie la présence d'une ancre dans l'URL
    - s'il y a une ancre, en fonction de la valeur de celle-ci, on éxécute un code JS qui permet d'afficher le DIV voulu et / ou son contenu, etc...

    Une fois qu'on a compris le principe, c'est bien plus simple.
    Merci à toi !!

  12. #12
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    un début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(window.location.href.indexOf("#")>0){
    ...
    je te conseille de mettre des paramètres dans la fonction, c'est plus sur comme fonctionnement

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/09/2014, 11h17
  2. Réponses: 7
    Dernier message: 27/09/2013, 17h31
  3. [Sécurité] Obtenir l'url courrante avec $_SERVER
    Par tsing dans le forum Langage
    Réponses: 5
    Dernier message: 18/11/2005, 11h04
  4. [JDBC][Debutant]pb url connection avec driver thin
    Par remi_phbc dans le forum JDBC
    Réponses: 2
    Dernier message: 02/12/2004, 12h10

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