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