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:
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 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); }
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�.
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"); } ?>
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...
Partager