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] ma fonction "is nor definied"


Sujet :

AJAX

  1. #1
    Membre averti
    Homme Profil pro
    Consultant technico-fonctionnel SAP BPC
    Inscrit en
    Février 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant technico-fonctionnel SAP BPC
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 40
    Par défaut [AJAX] ma fonction "is nor definied"
    Bonjour,

    Je monte des listes liées.
    Voici ma structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form id="buscarP">
    <select id="liste1" onchange="f1();">
    ...
    </select>
    <select id="liste2" onchange="f2(<?php echo intval($maVariable);?>);">
    </select>
    voici mes fonctions :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    // appel page buscar_profesor
    			function f1()
    			{
    				var count = Math.random();
    				var pays = document.forms['buscarP'].selectpays.value;
    				var f1 = CreateXMLHttpRequest ();
    				var method = 'GET';
    				var filename = 'http://www.hablarfrancais.com/es/inc/buscarProfesor.php?pays='+pays+'&count='+count;
    				f1.open(method, filename, true);
    				f1.onreadystatechange = function(){
    					if(f1.readyState <= 3)
    					{		
    						document.getElementById('chargement').style.visibility = 'visible';		
    					}
    					if(f1.readyState == 4)
    					{	
    						var tmp = f1.responseText;
    						document.getElementById('buscar_un_prof').innerHTML = tmp;
    						document.getElementById('chargement').style.visibility = 'hidden';
    					}
    				}
    				f1.send(null);	
    			}
    // appel page buscar_profesor_ville
    			function f2(infoPays)
    			{
    				var count = Math.random();
    				var pays = infoPays;
    				var region = document.forms['buscarP'].selectregion.value;
    				var f2 = CreateXMLHttpRequest ();
    				var method = 'GET';
    				var filename = 'http://www.hablarfrancais.com/es/inc/buscarProfesorVille.php?pays='+pays+'&region='+region+'&count='+count;
    				f2.open(method, filename, true);
    				f2.onreadystatechange = function(){
    					if(f2.readyState <= 3)
    					{		
    						document.getElementById('chargement').style.visibility = 'visible';		
    					}
    					if(f2.readyState == 4)
    					{	
    						var tmp = f2.responseText;
    						document.getElementById('buscar_un_prof').innerHTML = tmp;
    						document.getElementById('chargement').style.visibility = 'hidden';
    					}
    				}
    				f2.send(null);	
    			}
    La fonction f1 fonctionne très bien, elle remet bien à jour la liste 2.

    La fonction f2 "is not definied" dans firebug. Les fonctions f1 et f2 sont pourtant semblables.
    Je relis le code mais sans trouver d'erreur.

    Auriez-vous une idée du pourquoi du comment?

    Merci d'avance.

    voici la page concernée (moteur de recherche de gauche)
    http://www.hablarfrancais.com

    A ne plus rien y comprendre, ca fonctionne. Je me demande si le problème ne vient de la mise à jour sur fichier par Filezila vers OVH

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 209
    Par défaut
    Salut,
    Je suis pas sur, mais ton code PHP étant entre les "" du Javascipt est-il chargé correctement ou considéré comme du texte par PHP et donc la variable affichée et non pas utilisée...
    Tester la valeur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo intval($maVariable);?>
    sur le client me semble être une approche préliminaire (pour se faire Firebug est un bon outil du reste).
    C'est pour ce genre de blague que je préfère éviter : dans du html, du JavaScript qui contient du PHP...
    Le JavaScript non intrusif ici éclaircirait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    (function(){
    if(window.addEventListener) window.addEventListener("load", f, false);
    	else if (window.attachEvent) window.attachEvent("onload", f);
    function f(){
    taVar.onchange=function f2();
    //etc.
    }
    function f2(lePays){
     
    }
    })();
    A+
    JL

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    Modifie le nom des variables f1 et f2 qui ont le même nom avec les fonctions.

  4. #4
    Membre averti
    Homme Profil pro
    Consultant technico-fonctionnel SAP BPC
    Inscrit en
    Février 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant technico-fonctionnel SAP BPC
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 40
    Par défaut
    merci

    f1 et f2 étaient des noms d'exemple.
    Mes fonctions sont bien reconnues.
    Le php est bien reconnu aussi. onchange="f2(<?php echo intval($maVariable);?>);"

    Je débute en javascript, je n'ai pas bien compris "Le JavaScript non intrusif".

    encore merci

Discussions similaires

  1. [AJAX] 2 fonctions dans un onclick
    Par furth dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 19/07/2007, 18h01
  2. [AJAX] Rappel fonction ajax
    Par Phenomenium dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/01/2007, 16h02
  3. [AJAX] Une fonction pour poster un formulaire?
    Par Mysti¢ dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/09/2006, 18h28
  4. [AJAX] ajax et fonction javascript
    Par locs dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/08/2006, 16h56
  5. [AJAX] Ma fonction ne se termine pas...
    Par Davboc dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 08/03/2006, 12h05

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