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

AJAX Discussion :

[AJAX] Ajax et onclick sur un href


Sujet :

AJAX

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut [AJAX] Ajax et onclick sur un href
    Bonjour

    Je bute sur ce problème:

    j'ai une fonction ajax qui me permet d'afficher une div affichant des éléments selon les paramètres envoyés.

    Jusqu'à présent ça fonctionne parfaitement avec un élt du formulaire select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select name="nbreRep" id="nbreRep" onchange="triRep()">
    <option value="5">lien 1</><option value="10">lien 3</>
    </select<
    Grace à l'évènement onchange j'appel une fonction triRep() contenu dans le code AJAX.

    mon problème actuelement c'est de mettre un évènement onclick="fonction()" exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="page.php?tr=2" onclick="fonction()">lien</>
    et les résultats dans la fonction doivent s'afficher dans une div sur la même page.

    Mais quant on click au lieu d'afficher la page : page.php dans la div il ouvre pluto une autre page.

    Comment écrire ce lien pour faire appel à la fonction ajax?

    Merci de m'aider

  2. #2
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="page.php?tr=2" onclick="fonction();return false">lien</a>
    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

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    la page externe est toujours chargé.

    Je m'explique mieux

    dans la fonction AJAX la page appeler doit s'afficher dans une div avec id zone <div id="zone"></div>

    dans la fonction AJAX indique la DIV :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('zone').innerHTML...
    le lien est de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="page.php?rp=2" onclick="fonction();return false" id="LIEN">lien</>
    et la fonction AJAX recevant les paramètres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var rp=encodeURIComponent(document.getElementById("LIEN").value)
    				xhr.open("GET","page.php?rp="+rp,true);
    				xhr.send(null);
    au clique une page externe s'affiche au lien de s'afficher dans la div ZONE

  4. #4
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var rp=encodeURIComponent(document.getElementById("LIEN").value)
    Tu récupères le value d'une balise <a>
    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

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    je doit dire que j'ai pas bien compris ta dernière reponse.

    Oubien dois-je remplacer LIEN par la balise href ?? comment m'y prendre??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var rp=encodeURIComponent(document.getElementById("LIEN").value)
    				xhr.open("GET","page.php?rp="+rp,true);
    				xhr.send(null);

  6. #6
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Une balise <a> n'a pas de value... si tu veux récupérer le href, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var rp=encodeURIComponent(document.getElementById("LIEN").href)
    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

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    j'ai remplacer par href et ça marche mais il récupère la totalité du lien ce qui me donne rien dans la requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="page.php?rp=2" onclick="fonction();return false" id="LIEN">lien</>
    Quand je veux récuperer la valeur de rp en GET ou lien de la valeur 2 il me donne tout le lien y compris l'adresse du serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/home/test/page.php?rp=2
    c'est donc un QUERY WAS EMPTY qui sort

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par Interface Voir le message
    j'ai remplacer par href et ça marche mais il récupère la totalité du lien ce qui me donne rien dans la requête
    il suffit d'aller le chercher là où il se trouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var rp=encodeURIComponent(document.getElementById("LIEN").href);
    alert(rp.split("=")[1]);
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    merci pour le tuyo

    mais je n'arrive pas à récupérer la valeur de rp.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var rp=encodeURIComponent(document.getElementById("LIEN").href)
                                   var rp= (rp.split("=")[1];
    				xhr.open("GET","page.php?rp="+rp,true);
    				xhr.send(null);
    je c pas si je my prend mal.

  10. #10
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var rp=document.getElementById("LIEN").href.split('=')[1];
    xhr.open("GET","page.php?rp="+rp,true);
    xhr.send(null);
    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

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var rp=encodeURIComponent(document.getElementById("LIEN").href)
    				xhr.open("GET","page.php?rp="+rp.split("=")[1],true);
    				xhr.send(null);
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  12. #12
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var rp=encodeURIComponent(document.getElementById("LIEN").href)
    				xhr.open("GET","page.php?rp="+rp.split("=")[1],true);
    				xhr.send(null);
    A+
    Ben non E.Bzz, le encodeURIComponent transforme le '=', tu peux plus faire de split dessus
    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

  13. #13
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Arf !
    Le principe y était

    Je pensais pas que le "=" était impacté ....

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  14. #14
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    Problème

    mes liens sont de la forme :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <a href="page.php?rp=2" >lien1 </>
    <a href="page.php?rp=3" >lien2 </>
    <a href="page.php?rp=4" >lien5 </>
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var rp=document.getElementById("LIEN").href.split('=')[1];
    xhr.open("GET","page.php?rp="+rp,true);
    xhr.send(null);
    la requête semble récupérer seulement le lien 1 dont le rp=2 selon l'exemple comme s'il ne voyait plus les autres rp quand je clique sur les autres liens. Donnant ainsi un même résultat quelque soit le lien utilisé.

    et avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var rp=encodeURIComponent(document.getElementById("LIEN").href)
                    xhr.open("GET","page.php?rp="+rp.split("=")[1],true);
                    xhr.send(null);
    je n'ai aucun resultat.

  15. #15
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Interface Voir le message
    la requête semble récupérer seulement le lien 1 dont le rp=2 selon l'exemple comme s'il ne voyait plus les autres rp quand je clique sur les autres liens.
    Ton code cible uniquement le <a> ayant comme id "LIEN".
    Il ne traite donc qu'un seul lien (et toujours le même).
    Dans ton exemple HTML ci-dessus, aucune balise <A> ne possède d'id ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  16. #16
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="page.php?rp=2" >lien1 </>
    </a> serait mieux que </> pour fermer les balises
    Ensuite, tu as combien d'éléments avec l'id "LIEN" ???
    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

  17. #17
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    j'ai un maximum de 60 liens

  18. #18
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Interface Voir le message
    j'ai un maximum de 60 liens
    On peut voir le véritable code HTML de ces liens ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  19. #19
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while(requette)
    {?>
    <a href="page.php?rp=1" id="LIEN" onclick="load(); return false">lien1</a>
    <a href="page.php?rp=5" id="LIEN" onclick="load(); return false">lien7</a>
    <a href="page.php?rp=6" id="LIEN" onclick"load(); return false">lien8</a>
    .............
    .............
    ........
    <?php}
    comme vous pouvez constater que le id est toujours le même.

  20. #20
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Interface Voir le message
    comme vous pouvez constater que le id est toujours le même.
    Un id doit être unique dans la page

    Utilise un compteur dans ta boucle, que tu concatènes au "LIEN" pour générer des id uniques ...
    Tu pourras le passer en paramètre à ta fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="load(this.id);"
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AJAX] ajax et zone réactive sur image
    Par Raideman dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/11/2008, 11h19
  2. [AJAX] Ajax et z-index sur IE7
    Par whitespirit dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/07/2008, 23h11
  3. [AJAX] AJAX: effet de chargement sur formulaires
    Par nabab dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/09/2007, 18h25
  4. onclick sur a href avec redirection vers un autre fichier
    Par taka10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/08/2007, 15h39
  5. [AJAX] Ajax en mode synchrone sur Safari
    Par The Blec dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/02/2006, 17h52

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