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 "undefined" sous Firefox


Sujet :

AJAX

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 5
    Points : 4
    Points
    4
    Par défaut [AJAX] Ajax "undefined" sous Firefox
    Bonjour, (ouverture d'une nouvelle discussion suite a la remarque de llaffont )

    J'ai le même type de problème( cf ) , également avec FF et du JS + Jquery.
    voici la ligne qui me donne du fil à retordre:
    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="javascript:transformer2(butsend);"
    sachant que 'butsend' est l'id d'un lien.
    ça fait son taf sur tous les navigateurs testés
    mais pas sous FF qui me renvoie 'butsend is not defined'

    J'ai essayé
    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="javascript:transformer2('#butsend');"
    plus d'erreur, mais ma fonction 'transformer2' qui est sensée récupérer le 'title' de 'butsend' ne fonctionne plus (et c'est con pour une fonction)...

    Quelle syntaxe est la plus juste? et qu'est ce qui provoque cette exception de FF ? quelqu'un à t-il une piste?

  2. #2
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut
    Re,

    Dsl pour ma remarque mais c'était surtout pour pas que tu sois noyé dans la masse.

    bon si je comprends bien ton problème

    tu as un truc de ce style (j'aime bien avoir du concret)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a title='toto' href="#" id="butsend" onclick="javascript:transformer2(butsend);"> clique ici </a>
    et tu souhaite récupérer le title c'est à dire toto dans mon exemple.

    par bonheur tu utilises Jquery.

    donc cela va être simple tu remplaces "transformer2(butsend)" par transformer2(this) dans ta balise ancre (<a></a>).

    Puis sur dans ta fonction tu récupère comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function transformer2(butsend){
     
    var title = butsend.attr("title");
     
    ...
     
    }
    Si tu as plusieurs balise avec comme id "butsend" il se peut que jquery ne sache pas quels balise consulter c'est pour sa que ta seconde solution ne te retourne rien. Après savoir pour sa fonctionne sur les autres navigateurs faudrait voir ta function.
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !


    Albert Einstein

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci de ta réponse.

    En effet ça fonctionne avec 'this' ,j'utilise ça à un autre endroit et je récupere bien le titre, mais là oû le problème se pose, c'est lorsque le onClick n'est pas sur la balise dont on veut récuperer le titre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <a  href="#"  onclick="javascript:transformer2(butsend);">
    clique 
     <span  id="butsend" title='ici' >
    ici
     </span>
    </a>
    Et surtout, ce qui me laisse pantois, c'est que ça passe partout sauf FF...

    pour info, ma fonction ressemble à un truc comme ça (un peu simplifié):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function transformer2(obj){
    		$fermer = 'là';
    		var texte = obj.innerHTML;
    		if (texte== $fermer) {
    			obj.innerHTML = obj.title;				
    		}
    		else {
    			obj.innerHTML = $fermer;
     
    		}
    }

  4. #4
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut
    Pourquoi un Span dans une ancre pour une question d'aspect ?

    S'il s'agit juste de changer le contenu de ton ancre.

    tu as autant de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <a  class="reduire" href="#">
    clique ici
    </a>
     
    //tu déclares un évènement JQUERY dans ton JS
     
    $(function(){
     
    $('.reduire').toggle(function(){
    		$(this).empty();
    		$(this).append('clique là');
    		},
    		function(){
    		$(this).empty();
    		$(this).append('clique ici');
    		}
    	);
    }

    Quand à ta "pantoiserie" je suppose que tu n'a pas qu'un seul id="butsend" dans ton code ce qui revient à ce que j'ai marqué plus haut.

    Imagine être dans une salle remplie de gens nommé Paul. Si je te dis "va voir Paul". Es tu sûr de savoir du quel je parle ?

    FF lui préfère jouer la sécurité et te dire "précise mon gars car sinon on est encore là demain "
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !


    Albert Einstein

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    oui, il y a bien une question d'aspect, de positionnement (couleur et float:right ) et aussi parce qu'en réalité le contenu du span est généré via php.
    pour faire simple, plutôt que 'clique ici/là', il s'agit d'un truc comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <a  href="#"  onclick="javascript:transformer2(butsend);">
     <span  id="butsend" title='envoyer un email' >
    voir
     </span>
    toto
    </a>
    au clic (aussi bien sur 'toto' que sur 'voir'), 'voir' est remplacé 'masquer' (et vice versa).
    je passais par l'attribut 'title' pour pouvoir récupérer mon texte d'origine ( un gettext php) une fois qu'il à été ré-écrit par le innerhtml, mais je vais m'inspirer de ton bout de code pour essayer de m'en passer (je suis novice avec jquery, j'ai pas les reflexes).

    Après avoir vérifié, il n'y a bien qu'un seul Paul dans la salle.
    La question n'est donc pas tant ma fonction ou de ce qu'elle fait (puisqu'elle marche avec 'this') mais de comment appeler Paul en cliquant sur Virginie, sachant que Paul est dans Virgine (oui je sais, c'est peut être pas le meilleur moment pour l'appeler )

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Toto, Paul et Virginie se sont finalement mis d'accord: Jquery c'est vraiment de la balle.

    En implémentant ta méthode, tout marche comme sur des chouquettes, y compris la recup de mes variables php et les autres js de ma page.

    Merci llaffont pour ton aide

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

Discussions similaires

  1. [AJAX] Ajax passe sous IE, "undefined" sous Firefox
    Par franklin626 dans le forum AJAX
    Réponses: 22
    Dernier message: 04/08/2010, 11h08
  2. Réponses: 3
    Dernier message: 19/07/2010, 17h15
  3. [AJAX] marche pas sous firefox
    Par kaking dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 05/09/2008, 11h01
  4. event.keyCode undefined sous FireFox
    Par dupin40 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/03/2005, 11h15

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