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 :

Injecter un dropdown dans une row dynamic


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2011
    Messages : 131
    Points : 49
    Points
    49
    Par défaut Injecter un dropdown dans une row dynamic
    Bonjour,

    j'ai un problème et je ne suis pas du tout bon en js. Si vous pouvez m'aider ce serait cool.
    J'aimerais savoir comment on fait pour injecter dans une row dynamic un dropdown comportant des langue.
    En statique, pas de problème, mais la je plante.

    Peux être en ajax ? Mais la aussi comment fait on ?

    Merci

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <?php
            $test = Language::getLanguages();
    // J'ai essayé ceci mais cela ne fonctionne pas.
            foreach ($test as $toto) {
              $lg .= '<option id="language" value="' . $toto['id'] . '"></option><option value="' . $toto['name'] . '"></option></select>';
             }
     
          $output = <<<EOD
     
     
    <script>
    $(document).ready(function () {
      var counter = 0;
     
      $("#addrow").on("click", function () {
          var newRow = $("<tr>");
          var cols = "";
     
          cols += '<td><input type="text" class="form-control" name="user_question[]' + counter + '"/></td>';
     
     
     
    //le problème est ici : Dropdown     
          cols += '<td><select name="language[]' + counter + '" id="language" placeholder="Language" class="form-control">{$lg}</select></td>';
     
     
     
          cols += '<td><input type="button" class="ibtnDel btn btn-md btn-danger" id="delete_row" value="{$button_delete}"></td>';
     
          newRow.append(cols);
          $("table.order-list").append(newRow);
          counter++;
      });
     
      $("table.order-list").on("click", ".ibtnDel", function (event) {
        $(this).closest("tr").remove();       
        counter -= 1
      });
    });
     </script>
    EOD;
            return $output;

  2. #2
    Membre actif
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Points : 263
    Points
    263
    Par défaut
    Bonjour,

    Je pense que la construction des options de ton select est faux.
    de plus tu as des erreurs d écriture du name de tes éléments et tu as des id non unique et il manque un point virgule après la décrémentation de ton compteur.

    Essaie avec un truc comme ça

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <?php
            $test = array(array('id'=>1,'name'=>'Fr'),array('id'=>2,'name'=>'En'),array('id'=>3,'name'=>'De'));
     
         $lg = '';   
    foreach ($test as $toto) {
              $lg .= '<option value="'.$toto['id'].'">' . $toto['name'] . '</option>';
             }
    $button_delete = 'test';
     
     $output = <<<EOD
     
     
    <script>
    $(document).ready(function () {
      var counter = 0;
     
      $("#addrow").on("click", function () {
          var newRow = $("<tr>");
          var cols = "";
     
          cols += '<td><input type="text" class="form-control" name="user_question[' + counter + ']"/></td>';
     
     
          cols += '<td><select name="language[' + counter + ']" id="language[' + counter + ']" placeholder="Language" class="form-control">{$lg}</select></td>';
     
     
     
          cols += '<td><input type="button" class="ibtnDel btn btn-md btn-danger" id="delete_row[' + counter + ']" value="{$button_delete}"></td>';
     
          newRow.append(cols);
          $("table.order-list").append(newRow);
          counter++;
      });
     
      $("table.order-list").on("click", ".ibtnDel", function (event) {
        $(this).closest("tr").remove();       
        counter -= 1;
      });
    });
     </script>
    EOD;
            return $output;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2011
    Messages : 131
    Points : 49
    Points
    49
    Par défaut
    Ok, merci ca fonctionne.

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

Discussions similaires

  1. Injecter du texte dans une page
    Par maetela dans le forum Web & réseau
    Réponses: 3
    Dernier message: 05/06/2008, 14h30
  2. Réponses: 9
    Dernier message: 03/01/2008, 07h25
  3. injection de code dans une application
    Par youp_db dans le forum C
    Réponses: 16
    Dernier message: 21/07/2006, 12h33
  4. [NetBeans] DropDown dans une table
    Par nicolou dans le forum NetBeans
    Réponses: 4
    Dernier message: 16/06/2006, 10h51
  5. [VB.NET] fonction qui injecte du html dans une zone précise
    Par denisvignes dans le forum ASP.NET
    Réponses: 5
    Dernier message: 27/10/2005, 09h33

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