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 05/05/2008, 13h53   #1
Membre éclairé
 
Avatar de nicoaix
 
Homme
Chef de projet MOA
Inscription : décembre 2004
Messages : 562
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 562
Points : 325
Points : 325
Par défaut fonctionnement uniquement en mode synchrone

Bonjour,
Voici le code que j'utilise:
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
function ajax(nomduchamp,valeur,id){
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		requeteAJAX = new XMLHttpRequest();
		if (requeteAJAX.overrideMimeType) {
			requeteAJAX.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			requeteAJAX = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				requeteAJAX = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!requeteAJAX) {
		alert('Abandon : Impossible de créer une instance XMLHTTP');
		return false;
	}	
	requeteAJAX.open("GET","req_maj_aff.php?nomduchamp="+nomduchamp+"&valeur="+escape(valeur)+"&id="+id,true) ;
	requeteAJAX.send(null);
	requeteAJAX.onreadystatechange = function() {
		if(nomduchamp == "nb_cdts" && requeteAJAX.readyState == 4){
			var div_ori = document.getElementById('select_ori');
			div_ori.innerHTML = "<option>test</option>";
		}
	};
}
L'objectif est : suite à la modification d'un champ d'un formulaire d'une page web, je mets à jour la base de données et j'actualise l'élément de formulaire concerné. Pour la mise à jour de la base j'appelle la page req_maj_aff.php avec les paramètres qui vont bien. Cette fonction marche correctement.
Ce que je n'arrive pas à faire c'est mettre à jour l'affichage des éléments de formulaire de ma page.
j'ai notamment une liste dont voici le code d'affichage:
Code :
1
2
3
4
5
6
7
8
echo "<select id=\"select_ori\" name=\"ori[]\" size=\"".$numrow_ori."\" multiple=\"multiple\">";
	for($i=0; $i<$numrow_ori; $i++){
		$eta = mysql_result($query_ori,$i,'eta');
		$cdts = mysql_result($query_ori,$i,'nb_cdts');
 
		echo"<option value=\"".$eta." - ".$cdts."\">".$eta." ( ".$cdts." )</option>";
	}
	echo "</select>";
Ceci me permet d'alimenter cette liste avec les données d'une base. Le code est en PHP. Sur un autre élément du formulaire j'appelle la fonction ajax('nb_cdts',this.value,'1') sur la commande onblur de cet élément.
Deux questions:
1) Ceci ne fonctionne que en mode synchrone (requeteAJAX.open("GET","req_maj_aff.php?nomduchamp="+nomduchamp+"&valeur="+escape(valeur)+"&id="+id,true) ;
Si on remplace le 'true' à la fin par un 'false' (ce qui correspond alors au mode asynchrone) ça ne fonctionne plus. Pourquoi?

2)Pourquoi ma liste n'est-elle pas mise à jour? Je devrais normalement obtenir une liste avec une seule valeur 'test'.

Merci
nicoaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 14h26   #2
Membre éclairé
 
Avatar de nicoaix
 
Homme
Chef de projet MOA
Inscription : décembre 2004
Messages : 562
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 562
Points : 325
Points : 325
Je viens de trouver un élément de réponse : il faut utiliser une balise div qui englobe le select.
nicoaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 15h47   #3
Invité régulier
 
Inscription : décembre 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 10
Points : 9
Points : 9
Attention:
Code :
1
2
true ==> asynchrone
false ==> synchrone
THE Drog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h53.


 
 
 
 
Partenaires

Hébergement Web