IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[DOM] insertion de code HTML au sein d'un tableau avec innerHTML


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de Tanebisse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 449
    Points : 260
    Points
    260
    Par défaut [DOM] insertion de code HTML au sein d'un tableau avec innerHTML
    Bonjour tout le monde,
    J'ai un tableau xhtml avec une liste déroulante, quand je clique sur un élément de cette liste je déclenche un évènement onChange() et je voudrais ajouter une ligne dans mon tableau en fonction de ce qui est sélectionné.
    J'arrive bien à faire tout ça avec Ajax et le framework prototype, le problème c'est quand jé récupère ma réponse ajax et que je fais un innerHTML (dans un tr) ça marche pas avec IE !

    Voici le code de ma fonction javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function afficherCompatible(reponse) {
    	var ligne = document.getElementById("ligneCompatible");
    	ligne.innerHTML= reponse.responseText;
    }
    Dans mon HTML j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <table>
      ...
      <tr id="ligneCompatible"></tr>
      ...
    </table>
    Dans "reponse.responseText" de ma fonction javascript j'ai du code html (généré par un template) avec les TD qui vont bien pour remplir la TR ci dessus.

    Auriez-vous une solution ?

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    C'est un problème très connu qui ne se produit que sur IE :
    innerHTML:

    The property is read/write for all objects except the following, for which it is read-only: COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR.
    Ce que tu peux faire c'est d'ajouter les <td/> dans le <tr/> avec le DOM et faire un innerHtml sur les <td/>.

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    insertRow
    createElemen('td') ...

    bref les contournements possibles sont multiples ...

  4. #4
    Membre actif Avatar de Tanebisse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 449
    Points : 260
    Points
    260
    Par défaut
    OK, mais le problème c'est que j'utilise Smarty comme moteur de template et je renvoie un template relativement important, alors tout me retaper avec le DOM, c'est un peu galère. De plus j'utilise dans ce template des variables smarty et autres fonctions que je ne peux pas retranscrire en Javascript.

  5. #5
    Membre actif Avatar de Tanebisse
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 449
    Points : 260
    Points
    260
    Par défaut
    C'est bon enfin, j'ai trouvé. En fait le framework Prototype gère cette aspect avec la fonction "replace". Ce qui donne ça dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function afficherCompatible(reponse) {
    	$('compatibleLigne').replace(reponse.responseText);
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Insertion de code HTML en VBA -> Est-ce possible ?
    Par souffle56 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/08/2009, 20h07
  2. insertion de code HTML dans une JSF
    Par twister9458 dans le forum JSF
    Réponses: 0
    Dernier message: 17/07/2009, 17h05
  3. [DOM] Remplacer un objet DOM par du code HTML brut
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/04/2009, 15h14
  4. [MySQL] Insertion de code HTML dans une table, avec UPDATE
    Par Daedalus31 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/02/2007, 12h19
  5. Insertion de code html
    Par ANOVA dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/11/2005, 00h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo