Bonjour � tous,

Tout d'abord, je m'excuse pour la clart� de mon code qui n'est pas forc�ment parfaite (voir forcement pas parfaite...) je d�bute (je sais , �a n'est pas une excuse...)!

Je d�veloppe un petit site de pronostics sur des match de rugby. Un fois connect�, on a acc�s � une page pronostic o� il y a 1 formulaire par match proposant de pronostique le vainqueur, et les bonus offensifs et d�fensifs. Chaque formulaire s'appelle selon l'id du match auquel il se rapporte.

Le choix du vainqueur se fait par un <select> et les bonus par deux input checkbox.

Avec un �v�nement onchange sur chaque �l�ment, on ex�cute la fonction javascript pronostiquer(id) que voici:

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
function pronostiquer(id){ 
 
		var req = null; 
 
		if(window.XMLHttpRequest)
 
			req = new XMLHttpRequest(); 
 
		else if (window.ActiveXObject)
 
			req  = new ActiveXObject("Microsoft.XMLHTTP"); 
 
 
 
		req.onreadystatechange = function(){
 
 
 
			if(req.readyState == 4){
 
				if(req.status == 200) {
 
					afficheDesc('<img src="images_site/ok.gif" width="15px" height="15px"/>','textdiv'+id);
 
				}
 
				else {	
 
					afficheDesc("Error: returned status code " + req.status + " " + req.statusText,'textdiv'+id);
 
				}	
 
 
 
			}	
 
 
 
		} 
 
 
 
		var Vainqueur 	= document.forms['prono'+id].elements["vainqueur"].value;
 
		var BOff 		= document.forms['prono'+id].elements['bo'].value;
 
		var BDff 		= document.forms['prono'+id].elements['bd'].value;
 
		var Idmatch 	= document.forms['prono'+id].elements['idmatch'].value;
 
		var Idjoueur	= document.forms['prono'+id].elements['idjoueur'].value;
 
 
 
		req.open("POST", "../scripts/script_pronostique.php", true); 
 
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
 
		req.send("vainqueur="+Vainqueur+"&bo="+BOff+"&bd="+BDff+"&idmatch="+Idmatch+"&idjoueur="+Idjoueur); 
 
}
Le but de cette fonction d'envoyer les valeurs vainqueur, bonusoff et bonusdef et d'ex�cuter une requ�te SQL qui ajoute ou update le pronostique via le script script_pronostique.php que voici :

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
<?
 
 
 
 
 
 
 
$vainqueur = $_POST['vainqueur'];
 
$bo = $_POST['bo'];
 
$bd = $_POST['bd'];
 
$idmatch = $_POST['idmatch'];
 
$idjoueur = $_POST['idjoueur'];
 
 
 
 
 
include '../config/config.php';
 
$db = mysql_connect($sql_serveur,$sql_login,$sql_password);
 
mysql_select_db($sql_base,$db);
 
 
 
$i=0;
 
$sql= "SELECT * FROM lagrole.pronostique WHERE idmatch='$idmatch' AND idjoueur='$idjoueur' ";
 
$req= mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
 
 
while($data = mysql_fetch_assoc($req)){
 
$i=1;
 
}
 
 
 
if ($i == 1){
 
$db = mysql_connect($sql_serveur,$sql_login,$sql_password);
 
mysql_select_db($sql_base,$db);
 
MYSQL_QUERY("UPDATE lagrole.pronostique SET vainqueur ='$vainqueur', bonusoff='$bo',bonusdef ='$bd' WHERE idmatch='$idmatch' AND idjoueur='$idjoueur' LIMIT 1");
 
//MYSQL_QUERY("INSERT INTO lagrole.pronostique VALUES('','$idjoueur','$idmatch','$vainqueur','$bd','$bo')");
 
 
 
}
 
 
 
else {
 
$db = mysql_connect($sql_serveur,$sql_login,$sql_password);
 
mysql_select_db($sql_base,$db);
 
MYSQL_QUERY("INSERT INTO lagrole.pronostique VALUES('','$idjoueur','$idmatch','$vainqueur','$bd','$bo')");
 
//MYSQL_QUERY("UPDATE lagrole.pronostique SET vainqueur ='$vainqueur', bonusoff='$bo',bonusdef ='$bd' WHERE idmatch='$idmatch' AND idjoueur='$idjoueur' LIMIT 1");
 
 
 
}
 
 
 
 
 
?>
enfin, dans mon formulaire initial, une petite fonction php permet de mettre les check box sur checked et le select sur une valeur pr�cise si le vote a d�j� �t� efectu�.


Jusqu'ici tout devrai bien aller MAIS....

Sur safari, tout marche impec (je suis sous mac)...

Quand je teste sur Firefox3.0 Mac , sur Firefox3.0 PC et sur IE6 (pas encore test� sur IE7), le clic sur une check box la requ�te effectue comme si j'avais les deux checkbox de s�lectionn�es...En effet, apr�s un rechargement, les deux sont selection�e et les deux sont enregistr�es comme check�es dans ma base de donn�e sql.

Impossible d'enregistrer ensuite un uncheck... rien a faire... les deux cas n'enregistrent pas le uncheck...

Le choix du vainqueur par le <select> marche lui impec quelques soit le navigateur... le probl�me viens uniquement avec les checkbox...

Une petite id�e?

Merci !!! Et bonne chance pour m'aider....

Autre probl�me : comme vu dans ma fonction javascript, une image apparait a la fin de l'ex�cution du script... comment la faire disparaitre quelque secondes apr�s?

Merci encore

jb

PS: Je peux passer l'adresse du site par MP mais n'ayant pas du tout vu les probl�mes de s�curit�, je voudrais �viter de la filer direct pour le moment...