[POO] Formulaire avec du php et du javascript HTTPXmlR
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...:aie:)!
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:
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:
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...