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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  table & innerHTML probleme avec un formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

table & innerHTML probleme avec un formulaire

n°1825650
ffluff
Challenge Everything
Posté le 11-12-2008 à 17:13:40  profilanswer
 

Bonjour,
 
J'ai une table T, un bouton B et quand je clique sur B je veux que ca rajoute une ligne à T.
Jusque la ca marche nickel.
 
Mon probleme c'est lorsque que je mets un <select> dans une des colonnes
Quand j'ajoute la premier ligne ca marche.
Je choisi l'option voulu du select de la premiere ligne.
 
Et quand j'ajoute la 2eme ligne, ca me "reset" l'option choisi dans la premiere ligne ...
 
 
Voici un exemple de code : http://rafb.net/p/MNV9Dv18.html
 

Code :
  1. <html>
  2. <head>
  3. <script language="JavaScript" type="text/JavaScript">
  4.  function $(element){
  5.   if (typeof element == 'string')
  6.        return document.getElementById(element);
  7.   return element;
  8.  }
  9.  var nbFantomes = 0;
  10.  function addFantome(idTableFantome){
  11.   $(idTableFantome).innerHTML += '<tr>'+
  12.    '<td>' + nbFantomes + '</td>'+
  13.    '<td class="cInputData">'+
  14.     '<input name="data[' + nbFantomes + '][numero]"     id="Fantome_' + nbFantomes + '_Numero" value="xxx" type="text" />'+
  15.    '</td>'+
  16.    '<td class="cInputData">'+
  17.     '<select name="data[' + nbFantomes + '][produit_id]" id="Fantome_' + nbFantomes + '_Produit_id">'+
  18.      '<option value=""></option>'+
  19.      '<option value="2">0 OPT</option>'+
  20.      '<option value="5">1 OPT</option>'+
  21.      '<option value="6">2 OPT</option>'+
  22.      '<option value="7">3 OPT</option>'+
  23.      '<option value="8">4 OPT</option>'+
  24.      '<option value="44">5 OPT</option>'+
  25.      '<option value="47">6 OPT</option>'+
  26.      '<option value="48">7 OPT</option>'+
  27.     '</select>'+
  28.    '</td></tr>';
  29.    nbFantomes += 1;
  30.  }
  31. </script>
  32. </head>
  33. <body>
  34. <input type="button" value="Ajouter un fantome" onclick="addFantome('iTableFantomes'); "/>
  35. <table id="iTableFantomes" border="1">
  36. <tr>
  37.  <th>n</th>
  38.  <th>Numero</th>
  39.  <th>SELECT</th>
  40. </tr>
  41. </table>
  42. </body>
  43. </html>


 
J'ai essayé sous firefox/epiphany-gecko/epiphany-webkit et toujours le meme résultat.
 
J'avoue ne pas comprendre.Quelqu'un pour m'aider ?

mood
Publicité
Posté le 11-12-2008 à 17:13:40  profilanswer
 

n°1825657
kao98
...
Posté le 11-12-2008 à 17:23:51  profilanswer
 

J'ai parcouru rapidement, je n'ai pas trouvé, comme ça, pourquoi ça déconne.
Mais tu devrais essayé, plutôt que d'ajouter ta ligne par InnerHTML, de l'ajouter par le DOM avec des appendChild & Co.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1825697
ffluff
Challenge Everything
Posté le 11-12-2008 à 17:43:46  profilanswer
 

Oui effectivement cela fonctionne en faisant comme ca.
 
Le probleme c'est que la nouvelle ligne à inserer est obtenue avec une ligne par défaut de ma table.
 
En gros je fais codeHTML = ligneParDefault.innerHTML;
je remplace les id & nom de variable
et hop j'injecte tout ca dans la table qu'il faut.

n°1825707
kao98
...
Posté le 11-12-2008 à 17:46:46  profilanswer
 

Tu peux aussi faire ça en utilisant les méthodes du DOM !


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1825736
tpierron
Posté le 11-12-2008 à 18:44:09  profilanswer
 

Ça me parait normal comme comportement.
 
Le problème c'est que tu fais :

Code :
  1. table.innerHTML += codehtml


Ce qui est certainement traduit en interne par :

Code :
  1. table.innerHTML = table.innerHTML + codehtml


Et voilà, ton selectedIndex (ou l'attribut selected sur l'<option> ) n'est certainement pas inclu dans le innerHTML, du coup, c'est le premier qui se trouve sélectionné.
 
Bref, passe par des manipulations DOM.


Message édité par tpierron le 11-12-2008 à 18:44:38

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

  table & innerHTML probleme avec un formulaire

 

Sujets relatifs
problème sélection dans un intervalle en sql[Probleme] Dynamic_cast<T>(x) - Unix Segfault
Gros problème de session[Joomla] Modifier formulaire de soumission d'article
Petit problème avec un hash, des tableaux et des référencesProbleme MySQL
Problème alignement bloc CSS [terminé]Problème d'adition avec js
probleme grammaire linéaire en Cpré remplir un champs de formulaire
Plus de sujets relatifs à : table & innerHTML probleme avec un formulaire


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