Bonjour à tous !

Je fais du web depuis un petit moment (mais pas professionnellement) et je m'en suis toujours sorti avec google et ce forum, mais là je dois avouer que ça dépasse mon entendement.

Voici mon problème :

j'ai cette fonction dans mon fichier javascript qui se lance sur un bouton quelconque :
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
 
function modif_en_masse() {
	// on récup les valeurs des 2 champs textes
	var j = document.getElementById("mass_j").value ;
	var h = document.getElementById("mass_h").value ;
	// donc si les 2 sont vides, on ne fait rien.
	if ((j != "" && j != null) || (h != "" && h != null)) {
		alert("in");
		// classique ajax
		if (window.XMLHttpRequest) {
			alert("XMLHttpRequest");
			xmlhttp=new XMLHttpRequest();
		} else {
			alert("Microsoft.XMLHTTP");
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState==4 && xmlhttp.status==200) {
				alert("youpie");
				document.getElementById("test").innerHTML=xmlhttp.responseText;
			} else {
				alert("kaput");
			}
		}
		// toujours aussi classique ;)
		xmlhttp.open("POST","../scripts/rugby_modif_en_masse.php",false) ;
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader("Content-length", 2);
		xmlhttp.setRequestHeader("Connection", "close");
		xmlhttp.send("j="+j+"&h="+h);
		alert("out");
	} else {
		alert("x_x");
	}
}
Et voici maintenant le script :

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
 
<?php
header('Content-Type: text/html; charset=ISO-8859-1');
require ($_SERVER['DOCUMENT_ROOT']."/connexion.php");
$j = $_POST["j"] ;
$h = $_POST["h"] ;
$str = "UPDATE top14_2010_2011_matchs SET " ;
$nj = 0 ;
$nh = 0 ;
/* comme ce script n'est appelé uniquement si on a au moins j ou h de non vide (cf javascript),
on va tester pour chacun et remplir des variables pour la suite
*/
if ($j != "" && !is_null($j)) {
        $strj = "journee=".$j ;
        $nj = 1 ;
}
if ($h != "" && !is_null($h)) {
        $strh = "horaire='".$h."'" ;
        $nh = 1 ;
}
// on fait la somme, si c'est 1 on ne filtre la requête que sur le bon, sinon on met tout
switch ($nj+$nh) {
case 1 :
        if ($nj) {
                $str .= $strj ;
        }
        if ($nh) {
                $str .= $strh ;
        }
        break ;
case 2 :
        $str .= $strj.",".$strh ;
        break ;
default :
        break ;
}
$str .= " WHERE coche=1" ;
echo($str) ;
//mysql_query($str);
require ($_SERVER['DOCUMENT_ROOT']."/deconnexion.php");
?>
Et alors le mystère vient du fait que :
sous IE8 et Chrome, voici les alert(); que je vois :
- in
- XMLHttpRequest
- kaput (plusieurs fois, ce qui me paraît tout à fait normal)
- youpie
- out

et sous Firefox :
- in
- XMLHttpRequest
- out

de plus je vois bien la requête apparaître dans la div qui a "test" pour id uniquement sous IE et Chrome.


Voilà, il doit y avoir un truc caché quelque part que je ne vois pas, merci d'avance à ceux qui m'aideront