Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
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 11/05/2011, 11h24   #1
Membre du Club
 
Inscription : mai 2002
Messages : 190
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 190
Points : 54
Points : 54
Par défaut Bizarrerie avec getXhr() et ordre d'appel des fonctions

Bonjour,

J'utilise la fonction getXhr() pour afficher des éléments sur un formulaire lors du clic sur un bouton (affichage que si on a besoin de compléter ces champs).

J'ai 2 boutons :
<input value="Compléments..." name="btn_complements" type="button" onClick="complements();" />
et plus loin
<input value="Détails..." name="btn_echeancier" type="button" onClick="echeancier();" />

Quand je clique sur l'un ou sur l'autre en premier, mes champs supplémentaires s'affichent.
Quand je clique d'abord sur btn_echeancier puis sur btn_complements, mes champs supplémentaires s'affichent aussi.
MAIS :
Quand je clique sur btn_complements puis sur btn_echeancier les compléments s'affichent mais pas l'échéancier.

Voici les fonctions utilisées :
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
64
65
66
67
68
69
70
71
72
73
74
75
function getXhr(){
	var xhr = null;
	if(window.XMLHttpRequest) // Firefox et autres
	xhr = new XMLHttpRequest();
	else if(window.ActiveXObject){ // Internet Explorer
		try {
		xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
		xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else { // XMLHttpRequest non supporté par le navigateur
	alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	xhr = false;
	}
	return xhr;
}
 
 
function echeancier(){
	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('div_echeancier').innerHTML = leselect;
			}
		}
 
	// Ici on va voir comment faire du post
	xhr.open("POST","v_inc/ajaxEcheancier.php",true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	// ici, l'id de la convention et le montant
	sel1 = document.getElementById('val_idConvention');
	sel2 = document.getElementById('totalInsc');
	sel3 = document.getElementById('typeClient');
	sel4 = document.getElementById('val_annee1');
	sel5 = document.getElementById('val_annee2');
	var idConvention=sel1.value;
	var Montant = sel2.value;    
	var tClient=sel3.value;
	var annee1=sel4.value;
	var annee2=sel5.value;
	xhr.send("idConvention="+idConvention+"&montant="+Montant+"&typeClient="+tClient+"&annee1="+annee1+"&annee2="+annee2);
	//xhr.send();
}
 
function complements(){
	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
			leselect = xhr.responseText;
			// On se sert de innerHTML pour rajouter les options a la liste
			document.getElementById('div_complements').innerHTML = leselect;
			}
		}
 
	// Ici on va voir comment faire du post
	xhr.open("POST","v_inc/ajaxComplements.php",true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	// ne pas oublier de poster les arguments
	// ici, l'id de la convention et le montant
	data1 = document.getElementById('val_idConvention');
	data2 = document.getElementById('val_montantInsc');
	var idConvention=data1.value;
	var mtntInsc=data2.value;    
	xhr.send("idConvention="+idConvention+"&mtntInsc="+mtntInsc);
}
Je pensais que peut-être l'utilisation de la fonction getXhr() fois posait problème mais vu que ça marche dans le sens échéancier -> compléments je ne vois pas pourquoi ça ne marcherait pas dans le sens compléments -> échéancier.

Et j'ai vérifié les valeurs de sel1 à sel5 elles sont correctes.

Merci
LadyArwen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 11h32   #2
Membre du Club
 
Inscription : mai 2002
Messages : 190
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 190
Points : 54
Points : 54
Un peu plus de réflexion et j'ai trouvé, totalInsc devenait totalInsc2 une fois les compléments affichés... toutes mes excuses !
LadyArwen 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 07h51.


 
 
 
 
Partenaires

Hébergement Web