J'ai un petit soucis, j'ai voulu me faire la main avec le XMLHttpRequest et j'ai développé un matin un pti jeu (qui ne nécéssite absolument pas cette fonctionnalité js).

C'est un pierre feuille ciseaux tout bète. Il fonctionne comme ceci : trois images, lors d'un clic j'envoi la valeur de l'image à un traitement php qui me retourne le nom et je remplis un champ avec.

Ensuite je lance un traitement php pour choisir aletoirement entre les trois possibilités, le serveur me retourne le résultat et je remplis un autre champ avec cette valeur.

Après cela je lance le traitement serveur qui me renvoi le resultat de la confrontation entre le deux valeur avec une explication littérale du résultat.

Sous Firefox pas de problème, le système fonctionne à merveille !!

Sous IE par contre... lors du clic sur l'image pierre je fais match nul, feuille je gagne et ciseaux je perds.

Donc je ne comprends pas... le traitement qui choisi aleatoirement une valeur dépend du serveur donc le navigateur importe peu... le problème doit se situer dans le traitement js mais où... (ou est charlie? )

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
82
83
84
85
86
87
88
<script language="javascript">
   	   var xhr_object = null;
   	   var playerscr = 0;
   	   var randomscr = 0;
   	   var scrmax = 20;
 
         if(window.XMLHttpRequest) // Firefox 
            xhr_object = new XMLHttpRequest(); 
         	else if(window.ActiveXObject) // Internet Explorer 
         	   xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
         	else { // XMLHttpRequest non supporté par le navigateur 
         	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
         	}
 
         function playerchoice(val){
         	xhr_object.open("GET", "playerchoice.php?val="+val, false); 
         	xhr_object.send(null); 
         	if(xhr_object.readyState == 4) {
         	   document.forms['frm'].player.value = xhr_object.responseText;
         	   return xhr_object.responseText;
            }
         }
 
         function randomchoice(){
         	xhr_object.open("GET", "randomchoice.php", false); 
         	xhr_object.send(null); 
         	if(xhr_object.readyState == 4) {
         	   document.forms['frm'].random.value = xhr_object.responseText;
         	   return xhr_object.responseText;
            }
         }
 
         function fight(player, random){
            xhr_object.open("GET", "fight.php?player="+player+"&random="+random, false); 
         	xhr_object.send(null); 
         	if(xhr_object.readyState == 4) {
         	   return xhr_object.responseText;
            }
         }
 
         function score(player, random){
            xhr_object.open("GET", "score.php?player="+player+"&random="+random, false); 
         	xhr_object.send(null); 
         	if(xhr_object.readyState == 4) {
         	   return xhr_object.responseText;
            }
         }
 
      	function chifoumi(val){
           document.forms['frm'].result.style.backgroundColor = '';
      	   document.forms['frm'].result.value = '';
      	   document.forms['frm'].player.value = '';
      	   document.forms['frm'].random.value = '';
            var player = playerchoice(val);
            var random = randomchoice();
            var result = fight(player, random);
            var point = score(player, random);
            //alert(result);
            document.forms['frm'].result.value = result;
            if( point == 'player') {
               playerscr = playerscr + 1;
               document.forms['frm'].playerscr.value = playerscr;
               document.forms['frm'].result.style.backgroundColor = '#7f7';
            }else if( point == 'random') {
               randomscr = randomscr + 1;
               document.forms['frm'].randomscr.value = randomscr;
               document.forms['frm'].result.style.backgroundColor = '#f77';
            }
      	   if( playerscr == scrmax) {
      	      alert('Félicitations vous avez gagné !!');
      	      resetscr();
      	   } else if( randomscr == scrmax) {
      	      alert('Vous avez complètement perdu...');
      	      resetscr();
      	   }
         }
 
         function resetscr() {
      	   playerscr = 0;
      	   randomscr = 0;
            document.forms['frm'].playerscr.value = playerscr;
      	   document.forms['frm'].randomscr.value = randomscr;
            document.forms['frm'].result.style.backgroundColor = '';
      	   document.forms['frm'].result.value = '';
      	   document.forms['frm'].player.value = '';
      	   document.forms['frm'].random.value = '';
         }
	</script>
Il doit y avoir une erreur dans mon code où firefox passe au travers mais pas IE...

ps : rendez-vous compte vous même du résultat : SHI-FU-MI