Bonjour,

J'ai 3boutons radios dans mon formulaire.
je dois charger un champ liste(par requête) si l'un des boutons radio est clické.

Pour cela, j'ai défini cette fonction javascript ajax qui est appelée sur les événements onclick() de chaque bouton.


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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
function modif_select(val_compte){
	var natcompte1= '';
	var montext='';
	var js_table;
	var js_tableau;
 
				var xhr = getXhr();
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function(){
				alert_ajax(xhr);
				}
 
 
 
				// Ici on va voir comment faire du post
				xhr.open("POST","listes_comptes.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
				xhr.send("val_compte="+val_compte);
 
 
 
 
 
	  if (val_compte=='prod')
				{
 
				document.getElementById('ligne_branche').style.display = "";
 
 
				}
				else
				{
 
document.getElementById('ligne_branche').style.display = 'none';
				}
 
				if (val_compte=='Inv')
{
 
document.getElementById('ligne_libelle').style.display = "";
 
}
else
{
 
document.getElementById('ligne_libelle').style.display = 'none';
}
 
 
 
 
 
 
					function alert_ajax(xhr)
					{
 
					if (xhr.readyState==4 && xhr.status == 200 ) 
					{
					montext=xhr.responseText;
						js_table=montext.split(",");
						js_tableau=JSON.parse(js_table);
 
						Num_compte.options.length = 0;
Num_compte.options[0] = new Option('Aucun','-1');
 
for (i=0; i < js_tableau.length; i++) {
  Num_compte.options[i+1] = new Option(js_tableau[i],js_tableau[i])
 
}
 
         document.forms["test"].elements["intitule_compte"].value="";
 
 
 
 
					}
 
					}
 
 
 
 
 
 
			}

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
<form>
 <div align="center">
	 <label><b>Charges:</b></label>
 
 
 
	 <INPUT  type="radio"  name="natcompte" value="charg" checked onclick="return modif_select(this.value);"/>
	             <b><label style="margin:0 0em 0 5%">Produits :</label></b>
				 <INPUT type="radio" name="natcompte" value="prod" onclick="return modif_select(this.value);" />
				 <b><label style="margin:0 0em 0 6%">Investissements :</b> <INPUT  type="radio" name="natcompte" value="Inv" onclick="return modif_select(this.value);"/>
				 </br>
				 </br>
	 </div>
 
<input type="button" name="valide" value="Enregistrer" onclick="req_pseudo();"/>
</form>
Quand on ne soumets pas encore le formulaire( par une autre fonction ajax qui s'en occupe aussi qui est la fonction req_pseudo() sur le bouton valider d'en haut ), le chargement du champ liste se déroule correctement(fonction ajax ci-dessous) quand on clike sur un bouton

Par contre quand on clique le bouton 'Enregistrer', après si on reclique sur un autre bouton d'option , là le champ du liste ne contient que le chargement des données de la dernière exécution de la fonction ajax rattachée à l'evenemnt onclick().


J'ai l'impression que la fonction ajax appelée sur chacun des boutons radio cesse de s'excetuter si on enregistre les données en base (appel d'une autre fonction ajax).



Ce qui m’étonne vu que ça devait faire comment avant, c'est à dire re-s’exécuter si on clique sur un autre bouton.

Voilà, je sais pas c'est du à quoi

Merci de votre aides car ça peut me causer des ennuis.


Cordialement.