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 :
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 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 alors le mystère vient du fait que :
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"); ?>
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![]()
Partager