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] Syntaxe avec AJAX


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Points : 82
    Points
    82
    Par défaut [AJAX] Syntaxe avec AJAX
    Bonjour,
    Je me suis mis depuis peu sur AJAX et les systèmes de templates.
    Je rencontre plusieurs petits problèmes syntaxiques lors de mes tests:

    Problème avec IE: lien_de_la_page_problématique
    Principe:
    Lors de la selection d'un element du premier menu, une requete est lancé pour aller recuperer le nom des sous menus dans la base pour ensuite les afficher dans une deuxieme balises select (avec eval(document.getElementById("nomSM").innerHTML=xhr.responseText);) .

    Voici le code php d'affichage de la requete:
    if(mysql_num_rows($resultat))
    {
    echo ("<select name=\"nomSM\">");
    echo ("<option value=\"default\">Choisissez un sous-menu:</option>");
    while($rows=mysql_fetch_assoc($resultat))
    {
    echo ("<option value=\"".$rows[menu_id]."\">".$rows[menu_label]."</option>");
    }
    echo ("</select>");
    }


    Avec IE, au moment d'afficher les sous-menus, j'obtiens une alerte qui renvoit théoriquement à la ligne comportant le innerHTML du fichier js. Cette erreur n'est pas visible avec firefox.

    Autre problème:
    Souvent dans la console d'erreur de firefox, j'ai ce message suivant:
    missing ; before statement
    Je ne sais pourquoi.

    Si vous avez besoin des codes sources, je peux eventuellement vous les fournir.
    Merci pour votre aide...

  2. #2
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Points : 82
    Points
    82
    Par défaut
    Voici mes fichiers:

    getInfoSM.js (s'éxécute lors du changement d'option dans le menu select)
    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
    49
    50
    51
     
    	function getSMenu(idM)
    	{
    		if(document.selection.nomM.value != "default")
    		{
    			xhr=GetXmlHttpObject();
    			if (xhr==null)
    			{
    				alert ("Votre navigateur ne supporte pas AJAX!");
    				return;
    			} 
    			var url="script/getSMenu.php?idM="+escape(idM);
    			xhr.onreadystatechange=stateChanged;
    			xhr.open("GET",url,true);
    			xhr.send(null);
    		}
    		else
    		{
    			alert("Veuillez choisir un menu");
    		}
    	}
    	function stateChanged() 
    	{
    		if (xhr.readyState==1)
    		{ 
    			document.getElementById("nomSM").innerHTML="<select name=\"nomSM\"><option value=\"default\">Recherche en cours des sous-menus...</option></select>";
    		}
    		if (xhr.readyState==4)
    		{ 			eval(document.getElementById("nomSM").innerHTML=xhr.responseText);
    		}
    	}
    	function GetXmlHttpObject()
    	{
    		var xhr=null;
    		try
    		  {
    			  xhr=new XMLHttpRequest();
    		  }
    		catch (e)
    		  {
    		  try
    		    {
    			    xhr=new ActiveXObject("Msxml2.XMLHTTP");
    		    }
    		  catch (e)
    		    {
    			    xhr=new ActiveXObject("Microsoft.XMLHTTP");
    		    }
    		  }		  
    		return xhr;
    	}
    getSMenu.php (qui récupere dans la base le nom des sous-menus)
    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
     
    <?php
            $idM = $_GET['idM'];
                    
            include "../connexion_sql.php";
            $requete ="SELECT menu_id,menu_label FROM dad_menu WHERE menu_parent=$idM ORDER BY menu_label";
            $resultat = mysql_query($requete) or die("Une erreur est survenue lors de l'execution de la requete: ".$requete);
            if(mysql_num_rows($resultat))
            {
                    echo ("<select name=\"nomSM\">");
                    echo ("<option value=\"default\">Choisissez un sous-menu:</option>");
                    while($rows=mysql_fetch_assoc($resultat))
                    {
                            echo ("<option value=\"".$rows[menu_id]."\">".$rows[menu_label]."</option>");
                    }
                    echo ("</select>");
            }
            mysql_close();
    ?>

  3. #3
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Points : 82
    Points
    82
    Par défaut
    Bon ba en fait le problème n'était pas difficile à resoudre.
    Lors de l'affichage des données avec innerHTML, il fallait enlever le eval().

    Et là plus d'alerte avec IE!

    Reste plus qu'à comprendre l'alerte:
    missing ; before statement

Discussions similaires

  1. [AJAX] Séquence avec AJAX
    Par lapin_hobbit dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/11/2006, 14h18
  2. [AJAX] Sécurité avec AJAX
    Par Oluha dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/07/2006, 18h01
  3. [AJAX] Résultat avec Ajax
    Par incao dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/05/2006, 22h14
  4. [AJAX] PHP avec ajax(makerequest)
    Par Benjiijneb dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/04/2006, 16h53
  5. [AJAX] Modifier avec AJAX une image générée avec GD
    Par thsantac dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/03/2006, 19h34

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