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] génération de Select à l'aide de DOM et compatibilité Firefox2/IE7


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut [AJAX] génération de Select à l'aide de DOM et compatibilité Firefox2/IE7
    Bonjour,
    J'étais venu il y a peu de temps pour un problème en Ajax, et j'ai appris qu'il me fallait utiliser les DOM...
    Maintenant, tout fonctionne à une exception près: un select à générer...
    J'arrive à afficher le résultat de ma requête en générant le select avec des "createElement", tout s'affiche, mais pas moyen de récupérer les données... Me manquerait-il quelque chose ou bien j'ai juste merdé / oublié un truc?

    Voici mon code:

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
     
    function refreshTasks(elt)
    {
    	if(elt.value!=0)
    	{
    		XmlHttp=getXmlHttpObject();
    		XmlHttp.onreadystatechange=stateChangedRefreshTasks;
    		XmlHttp.open("GET","MesTachesListeT.php?dpt="+elt.value,true);
    		XmlHttp.send(null);
    	}
    }
     
     
    function stateChangedRefreshTasks()
    {
    	if(XmlHttp.readyState==4)
    	{
    		vider("tasks");
    		document.getElementById("h").value=0;
    		document.getElementById("h").disabled=true;
    		document.getElementById("min").value=0;
    		document.getElementById("min").disabled=true;
    		// Récupération de la liste des tâches
    		var reg = new RegExp('[|]+');
    		var reg2 = new RegExp('[:]+');
    		var resultats = XmlHttp.responseText.split(reg);
    		// Construction du SELECT
    		var sel = document.createElement('select');
    		sel.className = "smaller";
    		sel.name = "cxTask";
    		sel.id = "cxTask";
    		sel.onchange = function(event) {refreshVolDur(this);};
    		// Génération des OPTION
    		for( var i = 0 ; i<resultats.length ; i++ )
    		{
    			var option = document.createElement('option');
    			ssRes = resultats[i].split(reg2);
    			option.value = ssRes[0];
    			option.text = ssRes[1];
    			sel.appendChild(option);
    		}
    		ajouter("tasks",sel);
    	}
    }
     
    ...
     
    <?php
    echo '
            <td align="center">
                    <select name="cxDep" id="cxDep" class="smaller" onChange=\'refreshTasks(this);\'>
                            <option value="0" />';
    $req=mysql_query("SELECT * FROM DEPARTEMENT;") or die("Récupération des départements: ".mysql_error());
    while($res=mysql_fetch_array($req))
    {
            echo '
                            <option value="'.$res["num_dep"].'">'.$res["nom_dep"].'</option>';
    }
    echo '
                    </select>
            </td>';
    ?>

    Merci ^^

  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
    Désolé, mais j'ai pas trop compris ton problème.
    En particulier :
    tout s'affiche, mais pas moyen de récupérer les données...
    Si tout s'affiche, c'est que tu as récupéré les données non ?

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    lol oui désolé j'ai pas été super clair ^^
    Je voulais parler de la récupération du choix du select généré

    J'arrive à créer le select correctement, mais lorsque je valide mon formulaire, j'arrive à récupérer toutes les données (par post) excepté le choix de ce select...

  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
    J'imagine que ton élément n'est pas intégré dans le formulaire...

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    le div dans lequel je crée mon élément est intégré dans le formulaire... ça ne suffit pas?

    edit: Bon j'ai du nouveau...
    Sous firefox (v 2.0.0.14) j'ai le problème que je viens de citer...
    Sous IE 7 j'arrive à récupérer la valeur de ma donnée envoyée par post mais mon select n'affiche pas les libellés de chaque option...

    Le problème est surtout que je dois pouvoir faire tourner mon programme sur les deux...


    J'espère que ces quelques infos pourront vous éclairer sur mon problème... ^^'
    Si nécessaire, je peux envoyer le code entier de cette page, mais il y en a pour plus de 200 lignes...

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Pour simplifier le problème, quelqu'un saurait quels problèmes je peux rencontrer au niveau de la compatibilité entre IE et firefox en faisant de la génération de code à l'aide des DOM?
    Je suis toujours bloqué et si possible j'aimerais éviter d'avoir à refaire tout mon code pour remplacer la partie dynamique par de la gestion bourrin avec des formulaires... :-S

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Bon, j'ai finalement trouvé un échappatoire...
    Si quelqu'un se retrouve dans la même situation, j'ai tout simplement créé un "hidden" que j'ai rattaché au formulaire et dans lequel je met la valeur sélectionnée dans le "select" généré à l'aide des DOM... (j'initialise cette valeur dans la fonction appelée par le "onChange" de ce "select")


    Je suppose qu'il doit y avoir une solution plus "propre", mais à défaut de l'avoir trouvée, ça ça marche et c'est déjà moins crade que de l'envoi par POST

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

Discussions similaires

  1. [AJAX] page d'attente là 'aide d'un script javascript
    Par babalastar dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/03/2007, 21h12
  2. [AJAX] Actualisation de select
    Par Pahcixam dans le forum Général JavaScript
    Réponses: 49
    Dernier message: 14/12/2006, 11h23
  3. Requete SELECT à l'aide d'un contenu partiel d'un champ
    Par wylls dans le forum Langage SQL
    Réponses: 11
    Dernier message: 04/12/2006, 11h33
  4. [Ajax] Prob passage de param. dans boucle [DOM]
    Par narnou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/02/2006, 16h54
  5. Génération de fichier d'aide
    Par BOSSANT dans le forum Windows
    Réponses: 4
    Dernier message: 26/01/2006, 12h07

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