Salut,
Je suis en train de faire requêteur pour personnes ne connaissant absolument pas le SQL, et mon but est de faire quelque chose de très interactif et rapide donc je me suis tourné avec Ajax.
J'ai un premier formulaire, qui m'affiche le nom des toutes les relations de ma BD MySQL, avec un checkbox pour dire si cette relation fait partie de la requete ou pas.
Lorsque l'utilisateur coche le checkbox, alors un formulaire se charge dynamiquement sous le premier, listant les attributs des relations sélectionés, avec un checkbox pour chaque attributs. Lorsque je sélectionne un attributs, je fais afficher dynamiquement pour le moment la valeur de $_post dans la page de traitement et j'obtiens ce que je souhaite.
Le problème apparait lorsque je clique sur une nouvelle relation, alors que j'avais commencé à sélectionner des attributs, le second formulaire se recharge correctement mais lorsque je coche un attribut n'importe lequel, c'est toujours l'ancienne valeur du post qui est conservée ...
Je ne vois vraiment pas d'où ca peut venir ?![]()
Ci-joint mon code javascript :
Merci d'avance ...
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120 // Recupération des Tables sélectionnées function getTableCheck(){ var i = 0; var j = 0; var str = ""; while( selTbl.ckTbl[i] ){ if(selTbl.ckTbl[i].checked){ str = str + "tblChk[" + j + "]=" + selTbl.ckTbl[i].value + "&"; j++; } i++; } return str; } // Recupération des attributs sélectionnés function getAttrCheck(){ var i = 0; var j = 0; var str = ""; var oldTable = ""; while( tblForm.attribut[i] ){ if(tblForm.attribut[i].checked){ tmp = tblForm.attribut[i].value.split('.'); if( oldTable == tmp[0] ){ j++; } else{ oldTable = tmp[0]; j = 0; } str += tmp[0] + "[" + j + "]=" + tmp[1] + "&"; //alert( str ); } i++; } return str; } // Génération premier formulaire function refreshForm(){ var req = null; document.getElementById( 'formTbl' ).innerHTML = "<div align='center'><br/>Chargement en cours ... <br/> <img src='./images/progressBar.gif' alt='' /></div>"; document.getElementById( 'result' ).innerHTML = ""; if(window.XMLHttpRequest){ req = new XMLHttpRequest(); } else if ( window.ActiveXObject ) { req = new ActiveXObject( 'Microsoft.XMLHTTP' ); } else{ alert("Votre navigateur n'est pas compatible avec cette page."); return; } req.open("POST", "./modules/requeteurInfoTbl.php", true); req.onreadystatechange = function(){ if(req.readyState == 4){ if(req.status == 200){ document.getElementById( 'formTbl' ).innerHTML= req.responseText; } else{ document.getElementById( 'formTbl' ).innerHTML="Error: returned status code " + req.status + " " + req.statusText; } } }; req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); var str = getTableCheck(); req.send(str); } // Génération requete function genereReq(){ var req = null; document.getElementById( 'result' ).innerHTML = "<div align='center'><br/>Chargement en cours ... <br/> <img src='./images/progressBar.gif' alt='' /></div>"; if(window.XMLHttpRequest){ req = new XMLHttpRequest(); } else if ( window.ActiveXObject ) { req = new ActiveXObject( 'Microsoft.XMLHTTP' ); } else{ alert("Votre navigateur n'est pas compatible avec cette page."); return; } req.open("POST", "./modules/requeteurGenere.php", true); req.onreadystatechange = function(){ if(req.readyState == 4){ if(req.status == 200){ document.getElementById( 'result' ).innerHTML= req.responseText; } else{ document.getElementById( 'result' ).innerHTML="Error: returned status code " + req.status + " " + req.statusText; } } }; req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); var str = getAttrCheck(); req.send(str); }![]()
Partager