Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1112 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème incroyable de compatibilité avec IE7

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème incroyable de compatibilité avec IE7

n°1622569
smilm
Posté le 11-10-2007 à 18:42:42  profilanswer
 

Bonsoir,
 
Je possède un jeu en ligne et j'ai mis en place un menu déroulant permettant de choisir parmis les différents ennemis à attaquer.
Ce menu déroulant à une composante dynamique puisque il permet l'affichage d'information supplémentaire ailleurs sur la page lors de la selection d'un des ennemis. Ces infos supplémentaire sont stockès dans le menu déroulant, dans l'attribut label.
Voilà pour la petite histoire, maintenant le code:

Code :
  1. <select name="villageaattaque" size="1" onChange="change_them()">
  2.             <option label='||SEPARATION||'></option>
  3.             <?
  4.                          //Du code (requète SQL, etc)
  5.      $resultat=mysql_query($req,$connexion);
  6.      $old="";
  7.      while($listevillage=mysql_fetch_object($resultat))
  8.      {
  9.         if($old <> $listevillage->village)
  10.        echo"<option label=\"$listevillage->pseudo||SEPARATION||$listevillage->nom\">". espaceit($listevillage->village) ."</option>\n";
  11.      $old=$listevillage->village;
  12.      }
  13.     ?>
  14.           </select>


 
Plus loin, on retrouve la fonction change_them():

Code :
  1. function change_them()
  2.    {
  3.  selection=document.forms["formattaquer"].villageaattaque.selectedIndex ;
  4.  label1 = document.forms["formattaquer"].villageaattaque.options[selection].label;
  5.  pos_sep=label1.indexOf("||SEPARATION||",0);
  6.  label_chef=label1.substring(0,pos_sep);
  7.  label_alliance=label1.substring(label_chef.length+14,label1.length);
  8.  if(label_alliance=='') label_alliance='Aucune';
  9.  document.forms["formattaquer"].elements["chef"].value=label_chef;
  10.  document.forms["formattaquer"].elements["alliance"].value=label_alliance;
  11.  //On s'occupe de l'innerHTML
  12.  output="<a href='index.php?page=profil&pseudo1="+label_chef+"'>Voir Profil</a>";
  13.  txt = document.getElementById('chef_link');
  14.  if(label_chef!="" )
  15.  {
  16.  txt.innerHTML = output;
  17.  }
  18.  else
  19.  {
  20.  txt.innerHTML = "";
  21.  }
  22.    }


 
Voici le problème:
Sur IE6 et Firefox, je retrouve bien dans le menu déroulant uniquement des noms de villages. L'affichage dynamique du pseudo et du village fonctionne.
Sous IE7, je retrouve le contenu de mon label c'est à dire "pseudoXXX||SEPARATION||AllianceXXX"
 
Note:$listevillage->pseudo est un pseudo, $listevillage->nom est le nom de l'alliance a laquelle appartient $listevillage->pseudo, $listevillage->village est le nom du village de $listevillage->pseudo.
 
Je n'arrive pas à trouver le problème.
 
Merci d'avance.


Message édité par smilm le 12-10-2007 à 11:51:44
mood
Publicité
Posté le 11-10-2007 à 18:42:42  profilanswer
 

n°1622763
smilm
Posté le 12-10-2007 à 10:12:50  profilanswer
 

Petit up discret :)

n°1622828
omega2
Posté le 12-10-2007 à 11:44:40  profilanswer
 

C'est un problème de navigateur alors quel rapport avec le php?
Déplace plutôt dans "html/javascript" et poste du code si tu veux des réponses.

n°1622836
smilm
Posté le 12-10-2007 à 11:52:02  profilanswer
 

Merci. Je viens de transférer le message dans le forum approprié.

n°1623524
smilm
Posté le 14-10-2007 à 20:53:35  profilanswer
 

Petit up... :sarcastic:

n°1623921
Bidem
Posté le 15-10-2007 à 14:46:52  profilanswer
 

Citation :

Ces infos supplémentaire sont stockès dans le menu déroulant, dans l'attribut label.


http://www.w3.org/TR/html4/interac [...] def-OPTION
 

Citation :

label = text [CS]
    This attribute allows authors to specify a shorter label for an option than the content of the OPTION element. When specified, user agents should use the value of this attribute rather than the content of the OPTION element as the option label.


 
En clair c'est IE 7 qui a le bon comportement en affichant le contenu de l'attribut 'label'.
 
Pour corriger ton problème tu peux faire ça :
 - mettre tes infos ailleurs (dans un tableau par exemple)
 - au moment de la selection, récupérer l'info dans ce tableau
   Attention aux indices :
 

Code :
  1. function change_them()
  2. {
  3. selection = document.forms["formattaquer"].villageaattaque.selectedIndex;
  4. if (selection < 1) {
  5.   return;
  6. }
  7. label1 = mesInfos[selection - 1]; // -1 car le select à une ligne bidon
  8. ...
  9. }


Message édité par Bidem le 15-10-2007 à 14:49:19
n°1624602
smilm
Posté le 16-10-2007 à 12:17:02  profilanswer
 

Merci beaucoup pour cette réponse.
 
Juste une question:
Mettre les valeurs dans un tableau, on parle d'un tableau généré en php puis transposé dans un tableau en javascript ? Si oui, comment faire ?
Je suis un peu rouillé...je sais. Merci d'avance :)

n°1624689
Bidem
Posté le 16-10-2007 à 14:10:30  profilanswer
 

Pas besoin de créer un tableau PhP, on peut créer les valeurs du tableau de la même manière que tu créais les <option>
 

Code :
  1. <html>
  2. <head>
  3.   <script type="text/javascript">
  4.     // construction du tableau js
  5.     var mesInfos = [
  6.     <?
  7.     //Du code (requète SQL, etc)
  8.     $resultat=mysql_query($req,$connexion);
  9.     $old="";
  10.     while($listevillage=mysql_fetch_object($resultat))
  11.     {
  12.       if($old <> $listevillage->village)
  13.         echo "\"$listevillage->pseudo||SEPARATION||$listevillage->nom\",\n";
  14.       $old=$listevillage->village;
  15.     }
  16.     ?>
  17.     ];
  18.     ...
  19.   </script>
  20. </head>
  21. ...
  22. </html>


Message édité par Bidem le 16-10-2007 à 14:17:39
n°1625129
smilm
Posté le 17-10-2007 à 07:16:40  profilanswer
 

Ah ok! Génial !
Merci beaucoup :)

n°1626739
smilm
Posté le 18-10-2007 à 18:58:33  profilanswer
 

Nouveau problème avec le javascript:
 

Code :
  1. function change_them2()
  2. {
  3. alert("change_them2" );
  4.  selection = document.forms["formattaquer"].villageaattaque.selectedIndex;
  5.  if (selection < 1) {
  6.   alert("return" );
  7.    return;
  8.  }
  9.     alert("pas de return" );
  10.  label1 = mesInfos[selection - 1]; // -1 car le select à une ligne bidon
  11.    alert("test1" );
  12.  pos_sep=label1.indexOf("||SEPARATION||",0);
  13.    alert("test2" );
  14.  label_chef=label1.substring(0,pos_sep);
  15.  label_alliance=label1.substring(label_chef.length+14,label1.length);
  16.  if(label_alliance=='') label_alliance='Aucune';
  17.  document.forms["formattaquer"].elements["chef"].value=label_chef;
  18.  document.forms["formattaquer"].elements["alliance"].value=label_alliance;
  19.     alert(label_alliance);
  20. }


 
J'ai mis des alertes pour savoir ce qui n'allait pas:
Je n'ai ni l'alert("test2" ) ni l'alert(label_alliance) qui passe.
Pourquoi le script se bloque t-il à alter("test2" ) ?

mood
Publicité
Posté le 18-10-2007 à 18:58:33  profilanswer
 

n°1626782
gatsu35
Blablaté par Harko
Posté le 18-10-2007 à 20:11:33  profilanswer
 

firebug pour debugguer fils :o
et sinon le top du top c'est de mettre des console.log(tadata) et hop c'eest bien mieux de coder du JS avec firebug, sinon tu es dans le caca d'avance

n°1627153
smilm
Posté le 19-10-2007 à 13:04:22  profilanswer
 

Merci, je ne connaissais pas :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème incroyable de compatibilité avec IE7

 

Sujets relatifs
probleme de noob .. ping et batchProbleme avec hitTest en ActionScript 2
Problème avec une jointure[Résolu]Probleme d'enregistrement - envoi de formulaire
[Résolu] Probleme d'enregistrement lors d'un envoi de formulaireProblème Incrémentation
problème avec un moteur de rechercheProblème activeperl sous vista
Problème avec un staticProbleme deployement sur SUN JAVA SYSTEM APPLICATION SERVER 9.1
Plus de sujets relatifs à : Problème incroyable de compatibilité avec IE7


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR