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

jQuery Discussion :

Création dynamique de zones de saisie dans un tableau ?


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut Création dynamique de zones de saisie dans un tableau ?
    Bonjour tout le monde,

    Je me lance dans un grand projet et j'espère que vous pourrez m'aider.
    Je vais essayer de l'expliquer simplement.
    (En fait, pour ceux qui connaissent, on me demande de créer un moteur d'inférence en Javascript.)

    Dans un fichier XML, je vais récupérer la structure d'une page qui me permet donc de récupérer le nombre de zones de saisie, leur type et leur emplacement dans un tableau, la valeur d'initialisation, le nombre de caractère, etc...

    Le tableau est préalablement créé dans la page HTML et chaque cellule est nommée L1C1, L1C2... L3C1, L3C2, etc...

    Lorsque les informations sont récupérer dans le fichier XML, il faut ensuite que je créé dynamiquement toutes les zones de saisies dans les bonnes cellules du tableau de la page HTML.

    J'arrive bien à récupérer les informations du fichier XML, mais je n'arrive pas à créé dynamiquement les zones de saisie.

    Je suis donc preneur de toutes aide et de tous conseils qui me permettraient de me dépatouiller.

    Merci d'avance pour toute l'aide que vous m'apporterez...

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    il faut ensuite que je créé dynamiquement toutes les zones de saisies...
    il existe pour cela la méthode createElement de l'objet document
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var oInput = document.createElement('INPUT');
    ...dans les bonnes cellules du tableau de la page HTML.
    il existe pour cela la méthode appendChild qui permet l'ajout d'un élément à un autre élément du DOM.

    Concernant la récupération des cellules d'une TABLE il suffit de pointer sur la bonne ligne puis colonne et pour cela tu peux utiliser les collections rows et cells d'une TABLE.

    Avec le HTML suivant
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <table>
      <tr>
        <td>Colonne 1</td>
        <td>Colonne 2</td>
      </tr>
    </table>
    le script suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var oTable = document.getElementsByTagName('TABLE')[0];
    var oCell = oTable.rows[0].cells[1];  // ligne 1, cellule 2
    alert(oCell.innerHTML);
    affichera "Colonne 2".

  3. #3
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Merci, dés que je peux tester ça, je fais un retour.

    (Ps : j'ai supprimé mon petit HS, j'ai trouvé la réponse)

  4. #4
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Bon, ca avance, mais ce n'est pas encore une grande réussite

    Lorsque j'ai créé l'élément, je n'arrive pas à le placer dans la bonne cellule du tableau ?
    D'ailleurs, je ne vois pas l'élément créé sur la feuille...
    C'est normal, docteur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var oInput = document.createElement('INPUT');
    var ObjTab = document.getElementById("Tab");
    ObjTab.rows[0].cells[1] = oInput;

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    tu as oublié l'essentiel
    il existe pour cela la méthode appendChild qui permet l'ajout d'un élément à un autre élément du DOM.
    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var oInput = document.createElement('INPUT');
    var ObjTab = document.getElementById("Tab");
    // ObjTab.rows[0].cells[1] = oInput; -- NE VEUX RIEN DIRE --
    // utilisation de la méthode appendChild
    ObjTab.rows[0].cells[1].appendChild( oInput);

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Zebulon777
    je n'arrive pas à le placer dans la bonne cellule du tableau ?
    Attention, dans la notation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ObjTab.rows[0].cells[1]
    la propriété cells correspond à une collection d'objets td ou th, en aucun cas à un input.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Super, merci beaucoup.

    Maintenant, comment faire pour configurer les champs créés dynamiquement ? (Libellé devant, Type, nb car, format, etc...) ?

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour,

    Avec ta variable oInput tu peux configurer tout ce qui correspond au input "pur" (les attributs HTML).

    En ce qui concerne un "Libellé devant" il faut le créer comme tu fais pour le input (mais ce sera un tag label)


  9. #9
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Dites, petite question subsidiaire : comment récupérer le nom d'un noeud d'un fichier XML ?

    Un truc du style : ObjetXML.selectNodes(WNoeud0).item(WIndex).name; ?

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/08/2011, 17h54
  2. Création dynamique de champs de saisie
    Par mjp dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2008, 23h08
  3. Probleme de zone de saisie dans firefox
    Par samourai_alex dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/07/2006, 00h08
  4. Zone de saisie dans une listbox
    Par kurul1 dans le forum C++Builder
    Réponses: 8
    Dernier message: 14/03/2006, 11h54

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