Bonjour tout le monde,
J'ai un bug dans mon site.
J'ai un bouton qui permet de désactiver (interdire la modification) des zones de texte.
Voici le code de ce bouton :
<input type="submit" name="cloturer" id="cloturer" value="Cloturer ce cours " onclick="Cloturer()";/>
Le onclick me mène ici :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function Cloturer()
{
if(confirm('Vous ne pourrez plus modifier vos cotes apres la clôture, voulez-vous continuer ?'))
{
var cours = document.getElementById('select_Nom_mnemonics').options[document.getElementById('select_Nom_mnemonics').selectedIndex].value;
//alert(cours);
var type = document.getElementById('select_Nom_types').options[document.getElementById('select_Nom_types').selectedIndex].value;
//alert(type);
var categorie = document.getElementById('select_Categories').options[document.getElementById('select_Categories').selectedIndex].value;
//alert(categorie);
//Je mets ce message avant que le cours soit clôturé (pas le choix) juste pour prévenir l'utilisateur.
alert('cours clôturé avec succes');
go_cloture(cours,type,categorie);
//document.getElementById('idduchamps').disabled='disabled';
}
} |
je ne fait que passer 3 valeurs (les valeurs sélectionnées de chaque liste déroulante) et j'appelle ensuite une fonction nommée go_cloture() que voici :
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
|
function getXhr()
{
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
//ici, on utlise de l'ajax sans écrire quoi que ce soit dans la page, on ne fait qu'appeler du php sans faire de refresh
function go_cloture(cours,type,categorie)
{
var xhr = getXhr();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
leselect = xhr.responseText;
//alert('cours cloture avec succes');
}
}
//j'appelle la page Update_Cloture.php pour mettre a jour la table cours (cloture)
xhr.open("POST","../Scripts/Utilisateur/Update_Cloture.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("nomcours="+cours+"&nomtype="+type+"&nomcategorie="+categorie);
} |
J'appelle donc cette page PHP :
xhr.open("POST","../Scripts/Utilisateur/Update_Cloture.php",true);
qui contient ce code :
1 2 3 4 5 6 7
| <?php
include('../connexion.php');
//j'ajoute 1 dans le cours pour dire qu'il est modifié et j'ajoute la date du jour de la clôture
$MiseAJour = "UPDATE cours SET Cloture = 1, Cloture_le = now() WHERE MNEMONIC = '".$_POST['nomcours']."' AND TYPE_DE_COURS = '".$_POST['nomtype']."' AND Categorie = '".$_POST['nomcategorie']."' ";
echo $MiseAJour;
$execution=mysql_query($MiseAJour)or die($MiseAJour. " - " . mysql_error());
?> |
Le problème est que avec Firefox, il ne met pas à jour la table à chaque fois ou il le fait 1 fois sur 5.
Si je mets un : Il ne rentre même pas dedans.
Internet Explorer lui par contre ouvre l'alerte en disant : C'est bien la première fois que j'ai un problème avec Firefox et que ça fonctionne avec IE.
Sauriez-vous me dire ce qu'il se passe svp ?
Merci d'avance.
beegees
Partager