Bonjour,
J'ai un formulaire sur lequel j'ai un champs qui s'appelle Nom(s), j'ai réalisé un code en javascript permettant à l'utilisateur de saisir un nom ou plusieurs, pour cela j'ai affiché un petit plus devant mon input lorsqu'il clique dessus un autre input s'affiche devant lui un bouton supprimer(dans le cas ou il veut pas entrer un autre nom). Jusqu'ici tout marche bien je v vous donner le code.(Coter PHP j'ai utiliser la fontions implode pour enregistrer dans ma table.)

<div class="form-group">
                <div name="add_name" id="add_name">
                    <label class="col-sm-4 control-label">Nom(s)</label>
                    <div class="col-md-4">

                        <table  class="table table-bordered" id="dynamic_field">
                            <tr>
                                <td><input type="text"id="propositio_solution_par" name="propositio_solution_par[]"  class="form-control name_list" /></td>
                                <td><button type="button" name="add" id="add" class="btn btn-success"><i class="glyphicon glyphicon-plus"></i></button></td>
                            </tr>
                        </table>

                </div>
                </div>

            </div>  
    <script>
    $(document).ready(function(){
    var i=1;
    $('#add').click(function(){
        i++;
        $('#dynamic_field').append('<tr id="row'+i+'"><td><input type="text" name="propositio_solution_par[]" class="form-control name_list" /></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
    });

    $(document).on('click', '.btn_remove', function(){
        var button_id = $(this).attr("id"); 
        $('#row'+button_id+'').remove();
    });

});
</script>

Après avoir enregistrer, l'utilisateur peut modifier en cliquant sur un bouton modifier, les champs du formulaire se remplissent avec les valeurs enregistrées, mon soucis c que si l'utilisateur a entré deux noms par exemple(sam, zac), lors de la modification j'aurai un seul input qui contient sam, zac, alors que mois je veux avoir un input avec sam et un autre avc zac. Si vous avez une idée je suis preneuse merci .

3 réponses


popotte
Réponse acceptée

salut :)
Alors le problème vien de ton PHP, tu à fait un implode pour enregistrer, du coup dans ta base tu n'a pas plusieurs lignes avec chacun un nom, mais une ligne nom avec une string de noms

Donc la tu as deux solutions:

  • Premiere solution dans ton PHP, au lieux de faire implode, tu vas faire un foreach, et enregistrer chaque nom un par un
    -Deuxieme solution possible, tu laisse comme ça, par contre tu fait un explode de la string "noms" , $arrayNames = explode(',', $names)

Et ensuite tu foreach le fetch de la premiere solution ou le $arrayNamesde la deuxieme solution dans ta vue et tu affiches les input à chaque fois :)

Merci bcp pour votre réponse, c très intéressant ce que vous me dite, je v tester tout ça.
MERCI

Avec plaisir ^^