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

Langage PHP Discussion :

[Tableaux] Ajout dynamique de lignes à un tableau


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Points : 50
    Points
    50
    Par défaut [Tableaux] Ajout dynamique de lignes à un tableau
    Bonjour,

    J'ai un formulaire d'insertion qui comporte un tableau de base qui possède 2 colonnes et 2 lignes avec 2 champs de textes à remplir.

    Je voudrai que à chaque fois que l'utilisateur clique sur le bouton "+", une ligne avec 2 champs de texte se rajoute à la fin du tableau.

    J'ai essayé plusieurs trucs mais rien ne fonctionne...
    Comment est-ce que je dois m'y prendre?

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    En PHP c'est impossible (PHP côté serveur)

    en JavaScript en revanche, regarde du côté d'appendChlid ou de innerHTML...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    sinon tu poste un formulaire et tu recharge la page a chaque fois.
    Mais cela ne donne pas un resultat tres ergonomique.
    If it's not broken, don't fix it.
    BiliBa Built on top of Zend Framework

  4. #4
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Points : 50
    Points
    50
    Par défaut
    Merci pour vos réponses.
    je vais essayer de le faire en javascript. Mais je connais pas grandchose!

  5. #5
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    c'est tout a fait possible en rechargeant la page a chaque fois. De nombreux ecrans de ce genre existent deja (je pense par exemple aux ecrans de configuration de certains routeurs)

    Pour faire cela tes champs doivent avoir des name html du genre "nom[]" pour pouvoir etre récupérés sous forme de tableau (ou nom[indice] pour etre plus propre)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (isset($_POST['action']) && ($_POST['action']=='Add')) {
      $_POST['liste']['champ1'][]=''; // on ajoute une nouvelle ligne
      $_POST['liste']['champ2'][]=''; // de 2 champs
    }
    // on affiche les champs
    foreach ($_POST['liste']['champ1'] as $k=>$v) {
    echo "<input type='text' name=\"liste['champ1']['$k']\" value='$v'>";
    echo "<input type='text' name=\"liste['champ2']['$k']\" value='".$_POST['liste']['champ2'][$k]."'>";
    }
    // le bouton qui permet d'ajouter
    echo "<input type='submit' name='action' value='Add'>";
    Ce n'est qu'un exemple, non testé et pas tres joli, mais bon, ca peut te donner une idée ;o)

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 140
    Points : 151
    Points
    151
    Par défaut
    Dom HTML -> Objet TableSection : insertRow

    insertRow
    Définition

    La méthode javascript insertRow(index) de l'objet TableSection du Document Object Model HTML (DOM HTML) permet de d'insérer une ligne (tr) dans d'une balise HTML ou XHTML THEAD, TFOOT, et TBODY.

  7. #7
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 94
    Points : 50
    Points
    50
    Par défaut
    Je suis en train d'essayer de faire avec insertrow en javascript.

    Je vais poster sur le forum javascript car j'ai des petits soucis avec la syntaxe...

    Merci pour vos réponses!

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

Discussions similaires

  1. Ajout dynamique de lignes dans un tableau
    Par gobelet dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2012, 13h49
  2. [Tableaux] Ajout / Edition de lignes d'un tableau
    Par Prenthès dans le forum Langage
    Réponses: 24
    Dernier message: 01/12/2006, 15h49
  3. Ajouter dynamiquement des lignes à un tableau HTML
    Par jeannot1974 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 20/11/2006, 15h39
  4. [Tableaux] Ajout dynamique de ligne dans un tableau
    Par gforce dans le forum Langage
    Réponses: 7
    Dernier message: 14/07/2006, 12h02

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