Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2008, 09h20   #1
Membre à l'essai
 
Étudiant
Inscription : août 2006
Messages : 40
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 40
Points : 24
Points : 24
Envoyer un message via AIM à shito Envoyer un message via MSN à shito
Par défaut 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 :
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 ^^
shito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 09h26   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 828
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 828
Points : 35 849
Points : 35 849
Désolé, mais j'ai pas trop compris ton problème.
En particulier :
Citation:
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 ?
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 09h32   #3
Membre à l'essai
 
Étudiant
Inscription : août 2006
Messages : 40
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 40
Points : 24
Points : 24
Envoyer un message via AIM à shito Envoyer un message via MSN à shito
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...
shito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 10h01   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 828
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 828
Points : 35 849
Points : 35 849
J'imagine que ton élément n'est pas intégré dans le formulaire...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 10h05   #5
Membre à l'essai
 
Étudiant
Inscription : août 2006
Messages : 40
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 40
Points : 24
Points : 24
Envoyer un message via AIM à shito Envoyer un message via MSN à shito
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...
shito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 16h44   #6
Membre à l'essai
 
Étudiant
Inscription : août 2006
Messages : 40
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 40
Points : 24
Points : 24
Envoyer un message via AIM à shito Envoyer un message via MSN à shito
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
shito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 17h02   #7
Membre à l'essai
 
Étudiant
Inscription : août 2006
Messages : 40
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 40
Points : 24
Points : 24
Envoyer un message via AIM à shito Envoyer un message via MSN à shito
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
shito est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h47.


 
 
 
 
Partenaires

Hébergement Web