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 :

[AJAX] Ajout de lignes


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut [AJAX] Ajout de lignes
    Bonjour à tous,

    Ne sachant pas vraiment si c'était plus Ajax que JS, enfin pour ma part c'est de l'Ajax..

    voila je vous explique mon pb (ne l'ayant pas trouvé via recherche)

    J'ai un formulaire du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <form action="" method="post">
       <table>
    <tr>
    <td>nom</td><td>prenom</td>
    </tr>
    <tr>
    <td><input type="text" value="prenom" name="prenom"  /></td><td><input type="text" value="om" name="nom"  /></td>
    </tr>
    <tr>
    <td><div id="input"></div></td>
    </tr>
    </table>
    <input name="button" type="button" class="input2" onclick="add_champs()" value="Ajouter un competiteur"  />
    </form>
    et jour le .js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function add_champs()
    {
    	if (document.getElementById)
        {
        document.getElementById("input").innerHTML = '</div></td></tr>prout \n<tr><td coldpan="4"><div id="input">pouet';
        }
      else if (document.all)
        {
        document.all["input"].innerHTML = 'prout</div></td></tr> \n<tr><td coldpan="4"><div id="input">pouet';
        }
     
    }
    Voila donc j'ai réécri vite fait le form mais normalement avec ça j'ai plus trop de pb. Le seul truc c'est que j'ai l'impression que le js me prend pour une buse car au final au lieu de m'afficher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <tr>
    <td coldpan="4><div id="input">'prout</div></td>
    </tr> 
    <tr>
    <td coldpan="4"><div id="input">pouet</div></td>
    </tr>
    j'ai ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <tr>
    <td><div id="input">prout 
    <tr><td coldpan="4"><div id="input">pouet</div></td></tr></div></td>
    				</tr>
    Le chaos total en clair...toutes mes balises sont bougées... comme si l'ajax décidait comment les mettre ... et je vois plus de solutions la ...

    Merci d'avance

  2. #2
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Euh... innerHTML veut bien dire ce qu'il veut dire : "contenu HTML", toi tu t'en sers pour modifier le contenu HTML d'un élément en dehors, normal que ça ne fonctionne pas.
    En gros, il insère le contenuDANS la div et après se débrouille pour gérer les erreurs de syntaxe.

    La solution est d'insérer le contenu de la div, puis d'ajouter un autre élément HTML dans le DOM.

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    En fait mon but est de tout mettre dans la div...

    Enfin si tu as une solution plus optimisée pour ajouter des lignes à un tableau ...

  4. #4
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Par exemple une combinaison de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    document.createElement('tr');
    document.createElement('td');
    appendChild();
    insertBefore();
    Mais sinon, pour ton innerHTML, le problème survient car tu fermes la balise div puis ta ligne de tableau, ce n'est donc plus du innerHTML puisque tu tentes d'ajouter du contenu en dehors de ton élément.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Ok merci je vais voir ca ... mais j'avoue qu'au niveau de l'ajax j'ai encore du boulot :s

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    J'avais aussi le même problème, mais ensuite j'ai utilisé jQuery et on manipule facilement le tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('tbody').prepend('<tr><td>contenue</td></tr>')

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Tu m'intéresses a

    tu peux m'en dire plus ?

    Citation Envoyé par andry.aime
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $('tbody').prepend('<tr><td>contenue</td></tr>')
    ca rajoute la ligne ou dans le tableau ? etc..

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Oui mais en utilisant <tbody> pour le contenue du tableau. C'est ce que je fais. Mais tu devrais utiliser le Framework jQuery.

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Je vais te montrer à quel point je suis nul en Ajax mais je ne connais pas le framwork jQuery ...

  10. #10
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Tu telecharge jQuery et tu l'utilise dans ton fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="./js/jquery-1.3.1.min.js"></script>
    tu ne fais qu'appeler ensuite la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('tbody').prepend('<tr><td>contenue</td></tr>')
    pour mettre au début de la table ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('tbody').append('<tr><td>contenue</td></tr>')
    pour mettre en fin.

  11. #11
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    ah.. ok je cherchais un truc beaucoup plus compliquer. Merci beaucoup

    Je vais tester ça ^^

  12. #12
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Euh ... en fait j'essai de rajouter la ligne dans mon tableau :p le problème c'est que la ça fonctionne trop bien.... ca me rajoute le texte dans tous mes tableaux que j'ai dans ma page ...

  13. #13
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Autant pour moi ...


    En fait il suffisait de nommer enfin de donner un id à mon tableau et de l'appeler de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $('#mon_tableau').prepend('<tr><td>contenue</td></tr>')

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/06/2008, 21h33
  2. [AJAX] Ajout de lignes dans une table avec Ajax
    Par Tententai dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/11/2007, 16h54
  3. Ajouter une ligne dans une liste via un POPUP
    Par seblo_scoqi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/01/2005, 17h20
  4. [Fichier] Ajout des lignes de doc dans arraylist
    Par 3adoula dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 29/04/2004, 23h41

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