[JS]Problème d'execution de fction sur onchange() avec IE7

Problème d'execution de fction sur onchange() avec IE7 [JS] - HTML/CSS - Programmation

Marsh Posté le 13-08-2007 à 19:00:20    

Bonjour à tous et à toutes.
Voici mon problème j'ai une petit fonction js qui est appelée sur un onchange() d'une liste déroulante HTML.
Or cette fonction JS fonctionne très bien sous Mozila FF et pas du tout sous IE 7 :/
IE m'indique "erreur d'execution inconnue" Code 0.
J'ai également un problème d'affichage de la liste déroulante. Quand je clic dessus je ne voit pas les valeurs présentes dans la liste!
 
 
Liste HTML

Code :
  1. <select name="map1" size="1" class="mon_sel" onchange="map();">
  2.    <option selected value=""></option>
  3.    <option value="de_dust2">de_dust2</option>
  4.    <option value="de_train">de_train</option>
  5.    <option value="de_cbble">de_cbble</option>
  6.    <option value="de_inferno">de_inferno</option>
  7.    <option value="de_nuke">de_nuke</option>
  8.    <option value="cpl_mil">cpl_mil</option>
  9.    </select>


Fonction JS

Code :
  1. <script language="javascript">
  2. function map(){
  3. if(document.frm_ajout_war.map1.value!="" ){
  4.   document.getElementById('map1').innerHTML='<td>'+
  5.   'Map 1:'+
  6.  '</td>'+
  7.  '<td>'+
  8.   '<input name="score_map1_rebirth" type="text" value="0" size="1" maxlength="2" />'+
  9.   '-'+
  10.   '<input name="score_map1_adv" type="text" value="0" size="1" maxlength="2" />'+
  11.  '</td>';
  12.  }
  13.  else{
  14.  document.getElementById('map1').innerHTML=''
  15.  }
  16. if(document.frm_ajout_war.map2.value!="" ){
  17.  document.getElementById('map2').innerHTML='<td>'+
  18.  'Map 2:'+
  19. '</td>'+
  20. '<td>'+
  21.  '<input name="score_map2_rebirth" type="text" value="0" size="1" maxlength="2" />'+
  22.  '-'+
  23.  '<input name="score_map2_adv" type="text" value="0" size="1" maxlength="2" />'+
  24. '</td>';
  25. }
  26. else{
  27. document.getElementById('map2').innerHTML=''
  28. }
  29. if(document.frm_ajout_war.map3.value!="" ){
  30. document.getElementById('map3').innerHTML='<td>'+
  31. 'Map 3:'+
  32. '</td>'+
  33. '<td>'+
  34.  '<input name="score_map3_rebirth" type="text" value="0" size="1" maxlength="2" />'+
  35.  '-'+
  36.  '<input name="score_map3_adv" type="text" value="0" size="1" maxlength="2" />'+
  37. '</td>';
  38. }
  39. else{
  40. document.getElementById('map3').innerHTML=''
  41. }
  42. }
  43. </script>


 
CSS de la liste déroulante

Code :
  1. SELECT.mon_sel {
  2. WIDTH: 150px;
  3. }


Message édité par Stuntman le 13-08-2007 à 19:00:55
Reply

Marsh Posté le 13-08-2007 à 19:00:20   

Reply

Marsh Posté le 14-08-2007 à 14:27:28    

<select name="map1" size="1"
 
[:pingouino dei]


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 14-08-2007 à 16:37:51    

Ba wé pour qu'il affiche qu'un seul élément à la fois non?  :??:  :(

Reply

Marsh Posté le 14-08-2007 à 16:42:46    

on pourrait voir le code HTML associé s'il te plait. Car là tu essaye de melanger les name et les id ce qui n'est pas bon pour IE et de plus on ne fait pas de innerHTML dans un <table> ca pete à la gueule sous IE

Reply

Marsh Posté le 14-08-2007 à 17:20:55    

Stuntman a écrit :

Ba wé pour qu'il affiche qu'un seul élément à la fois non?  :??:  :(


ah oui dsl c'est moi qui chie :D


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 14-08-2007 à 20:38:38    

gatsu35 a écrit :

on pourrait voir le code HTML associé s'il te plait. Car là tu essaye de melanger les name et les id ce qui n'est pas bon pour IE et de plus on ne fait pas de innerHTML dans un <table> ca pete à la gueule sous IE


 
Ok, mais moi j'en ai besoin de tableau dans mon inner (pour la présentation).

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. </head>
  6. <body>
  7. <center><b>- Ajouter une war -</b></center>
  8. <?php
  9. if($erreur>0)
  10. {
  11.  echo '<center><font color="red"><i>Tous les champs sont obligatoires.</i></font></center><br /><br />';
  12. }
  13. ?>
  14. <br /><br />
  15. <script language="javascript">
  16. function map(){
  17. if(document.frm_ajout_war.map1.value!="" ){
  18.   document.getElementById('map1').innerHTML='<td>'+
  19.   'Map 1:'+
  20.  '</td>'+
  21.  '<td>'+
  22.   '<input name="score_map1_rebirth" type="text" value="0" size="1" maxlength="2" />'+
  23.   '-'+
  24.   '<input name="score_map1_adv" type="text" value="0" size="1" maxlength="2" />'+
  25.  '</td>';
  26.  }
  27.  else{
  28.  document.getElementById('map1').innerHTML=''
  29.  }
  30. if(document.frm_ajout_war.map2.value!="" ){
  31.  document.getElementById('map2').innerHTML='<td>'+
  32.  'Map 2:'+
  33. '</td>'+
  34. '<td>'+
  35.  '<input name="score_map2_rebirth" type="text" value="0" size="1" maxlength="2" />'+
  36.  '-'+
  37.  '<input name="score_map2_adv" type="text" value="0" size="1" maxlength="2" />'+
  38. '</td>';
  39. }
  40. else{
  41. document.getElementById('map2').innerHTML=''
  42. }
  43. if(document.frm_ajout_war.map3.value!="" ){
  44. document.getElementById('map3').innerHTML='<td>'+
  45. 'Map 3:'+
  46. '</td>'+
  47. '<td>'+
  48.  '<input name="score_map3_rebirth" type="text" value="0" size="1" maxlength="2" />'+
  49.  '-'+
  50.  '<input name="score_map3_adv" type="text" value="0" size="1" maxlength="2" />'+
  51. '</td>';
  52. }
  53. else{
  54. document.getElementById('map3').innerHTML=''
  55. }
  56. }
  57. </script>
  58. <?php
  59. if (isset($_POST['saisie']))
  60. {
  61. if (($_POST['saisie'])=='oui')
  62. {
  63.  $erreur;
  64.  if (isset($_POST['date']))
  65.  {
  66.   $date=$_POST['date'];
  67.   if (($_POST['date'])=='')
  68.   {
  69.    $erreur=$erreur+1;
  70.   }
  71.  }
  72.  if (isset($_POST['type_match']))
  73.  {
  74.   $type_match=$_POST['type_match'];
  75.   if (($_POST['type_match'])=='')
  76.   {
  77.    $erreur=$erreur+1;
  78.   }
  79.  }
  80.  if (isset($_POST['adv']))
  81.  {
  82.   $adv=$_POST['adv'];
  83.   if (($_POST['adv'])=='')
  84.   {
  85.    $erreur=$erreur+1;
  86.   }
  87.  }
  88.  if (isset($_POST['map1']))
  89.  {
  90.   $map1=$_POST['map1'];
  91.   if (empty($map1))
  92.   {
  93.    $erreur=$erreur+1;
  94.   }
  95.  }
  96.  if (isset($_POST['map2']))
  97.  {
  98.   $map1=$_POST['map2'];
  99.   if (empty($map2))
  100.   {
  101.    $erreur=$erreur+1;
  102.   }
  103.  }
  104.  if (isset($_POST['map3']))
  105.  {
  106.   $map1=$_POST['map3'];
  107.   if (empty($map3))
  108.   {
  109.    $erreur=$erreur+1;
  110.   }
  111.  }
  112.  if (isset($_POST['rapport']))
  113.  {
  114.   $rapport=$_POST['rapport'];
  115.  }
  116. }
  117. if ($date!='')
  118. {
  119.  // connexion à la base
  120.  include('sql/startsql.php');
  121.  //  requête sql
  122.  $req = "INSERT INTO wars(adversaire,date,map1,map2,map3,typematch,rapport) VALUES('$adv','$date','$map1','$map2','$map3','$type_match','$rapport')";
  123.  // on insère les informations du formulaire dans la table
  124.  mysql_query($req) or die('Erreur SQL !'.$req.'<br>'.mysql_error());
  125.  mysql_close();  // on ferme la connexion
  126. ?>
  127.  <?php $ajout=true?>
  128.  <center><font color="red"><i>Wars ajoutée.</i></font></center><br /><br />
  129.  <script language="javascript">
  130.   setTimeout("window.location.replace('index.php')",3000)
  131.  </script>
  132. <?php
  133. }
  134. }
  135. ?>
  136. <?php
  137. if(empty($_SESSION['pseudo'])) // si non logué
  138. {
  139. echo "<br /><br />Vous n'êtes pas autorisé a accèdez à l'administration du site.<br /><br />";
  140. }
  141. else{ // si logué
  142. ?>
  143. <?php
  144. $date=date("d/m/Y" )
  145. ?>
  146. <?php
  147. if($ajout==false)
  148.  {
  149. ?>
  150. <form method="post" action="#" name="frm_ajout_war">
  151. <input type="hidden" name="saisie" value="oui" />
  152. <table align="center" border="0">
  153.  <tr align="center">
  154.   <td width="199">
  155.    Date  </td>
  156.   <td width="210">
  157.    <input name="date" type="text" maxlength="10" size="10"value="<?php echo $date ?>">
  158.    </td>
  159.  </tr>
  160.  <tr>
  161.   <td>
  162.    <br />
  163.   </td>
  164.  </tr>
  165.  <tr align="center">
  166.   <td colspan="2">
  167.    <b>Détails Match</b>
  168.   </td>
  169.  </tr>
  170.  <tr>
  171.   <td>
  172.    <br />
  173.   </td>
  174.  </tr>
  175.  <tr align="center">
  176.   <td>
  177.    Type de match
  178.   </td>
  179.   <td align="center">
  180.    <select name="type_match" size="1" class="mon_sel">
  181.     <option value="WCG Qualification">WCG Qualification</option>
  182.     <option value="ESL">ESL</option>
  183.    </select>
  184.   </td>
  185.  </tr>
  186.   <tr align="center">
  187.   <td>
  188.    Adversaire
  189.   </td>
  190.   <td align="center">
  191.    <input name="adv" type="text" size="20" maxlength="20" />
  192.   </td>
  193.  </tr>
  194.  <tr align="center">
  195.   <td>
  196.    Map 1
  197.   </td>
  198.   <td>
  199.    <select name="map1" size="1" class="mon_sel" onchange="map();">
  200.     <option selected value=""></option>
  201.     <option value="de_dust2">de_dust2</option>
  202.     <option value="de_train">de_train</option>
  203.     <option value="de_cbble">de_cbble</option>
  204.     <option value="de_inferno">de_inferno</option>
  205.     <option value="de_nuke">de_nuke</option>
  206.     <option value="cpl_mil">cpl_mil</option>
  207.     </select>
  208.   </td>
  209.  </tr>
  210.  <tr align="center">
  211.   <td>
  212.    Map 2
  213.   </td>
  214.   <td>
  215.    <select name="map2" size="1" class="mon_sel" onchange="map();">
  216.     <option selected value=""></option>
  217.     <option value="de_dust2">de_dust2</option>
  218.     <option value="de_train">de_train</option>
  219.     <option value="de_cbble">de_cbble</option>
  220.     <option value="de_inferno">de_inferno</option>
  221.     <option value="de_nuke">de_nuke</option>
  222.     <option value="cpl_mil">cpl_mil</option>
  223.     </select>
  224.   </td>
  225.  </tr>
  226.  <tr align="center">
  227.   <td>
  228.    Map 3
  229.   </td>
  230.   <td>
  231.    <select name="map3" size="1" class="mon_sel" onchange="map();">
  232.     <option selected value=""></option>
  233.     <option value="de_dust2">de_dust2</option>
  234.     <option value="de_train">de_train</option>
  235.     <option value="de_cbble">de_cbble</option>
  236.     <option value="de_inferno">de_inferno</option>
  237.     <option value="de_nuke">de_nuke</option>
  238.     <option value="cpl_mil">cpl_mil</option>
  239.     </select>
  240.   </td>
  241.  </tr>
  242.  <tr>
  243.   <td>
  244.    <br />
  245.   </td>
  246.  </tr>
  247.  <tr align="center">
  248.   <td colspan="2">
  249.    <b>Scores</b>
  250.   </td>
  251.  </tr>
  252.  <tr>
  253.   <td>
  254.    <br />
  255.   </td>
  256.  </tr>
  257.  <tr align="center" id="map1">
  258.  </tr>
  259.  <tr align="center" id="map2">
  260.  </tr>
  261.  <tr align="center" id="map3">
  262.  </tr>
  263.  <tr>
  264.   <td>
  265.    <br />
  266.   </td>
  267.  </tr>
  268.  <tr align="center">
  269.   <td colspan="2">
  270.    <b>Commentaires</b>
  271.   </td>
  272.  </tr>
  273.  <tr>
  274.   <td>
  275.    <br />
  276.   </td>
  277.  </tr>
  278.  <tr align="center">
  279.   <td colspan="2">
  280.    <textarea name="rapport" cols="50" rows="10">Votre texte ici, maximum 255 caractères.</textarea>
  281.   </td>
  282.  </tr>
  283.  <tr>
  284.   <td>
  285.    <br />
  286.   </td>
  287.  </tr>
  288.  <tr align="center">
  289.   <td align="right">
  290.    <input type="submit" value="Ajouter" name="submit" />
  291.   </td>
  292.   <td align="left">
  293.    <input type="reset" value="Effacer" name="reset" />
  294.   </td>
  295.  </tr>
  296. </table>
  297. </form>
  298. <br />
  299. <?php
  300. }
  301. }
  302. ?>
  303. <a href="?CONTENT=gestionnews"><center><b>- Retour -</b></center> </a>
  304. </body>
  305. </html>

Reply

Marsh Posté le 15-08-2007 à 12:47:25    

Citation :

XHTML 1.0 Strict


+

Citation :

<center><font color="red"><i>Wars ajoutée.


=
panpan cucu :D

 

et sinon pour remplacer le innerHTML il faut que tu utilises le DOM.

 

pour le reste je sais pas.


Message édité par theredled le 15-08-2007 à 12:50:00

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 15-08-2007 à 13:44:04    

Humm, c'est pas très clair pour moi...
Tu peux préciser?

Reply

Marsh Posté le 15-08-2007 à 16:11:23    

Stuntman a écrit :

Humm, c'est pas très clair pour moi...
Tu peux préciser?


Le DOM en gros c'est un ensemble de fonctions (intégrées entre autres à javascript) qui permettent de manipuler une page HTML. Pour plus de détails, et la doc -> Google
tiens je t'aide : http://www.xul.fr/xml-dom.html

 


Pour le reste, le but du XHTML (surtout strict !), est comme chacun sait de séparer le contenu de la présentation des pages (XHTML + CSS), donc les balises <font> <center> etc sont méga-over à bânir et pas valides. Et même sans parler de validité, la séparation présentation/contenu c'est quand même une base du dev web... Disons que je souhaite à personne d'avoir à faire des modifs sur ton site :D


Message édité par theredled le 15-08-2007 à 16:13:29

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 16-08-2007 à 15:03:08    

Merci de cette précision, mais ca résolue toujours pas mon problème de JS :/  
Faire du DOM ca me paraît au dessus de mes connaissances.

Reply

Marsh Posté le 16-08-2007 à 15:03:08   

Reply

Marsh Posté le 16-08-2007 à 19:00:32    

En fait si on veut comprendre ce que c'est le DOM c'est simple :  
 
d'un coté on a le JS et d'un autre le HTML
JS ---------- HTML
 
Le DOM est tout simplement une interface entre le JS et le HTML, et plus précisément une répresentation Objet de ta page HTML
JS----DOM----HTML

Reply

Marsh Posté le 16-08-2007 à 21:29:33    

Ok merci.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed