5 votes

Jquery ID appliquer

J'essaie de créer un formulaire de commande dynamique en utilisant Jquery et PHP et je suis bloqué. J'ai un code Jquery qui onclick ajoute un nouvel ensemble de champs. De plus, dans ce code jquery, j'applique un style et un jquery à l'un des champs. Il s'agit d'une liste déroulante multisélection et consultable.

Mais il y a un problème. Je peux appliquer ce style pour qu'il y ait la barre de recherche, etc. au premier. Ceux qui suivent sont juste des listes multiples aléatoires sans valeurs ou barre de recherche.

Voici mon code :

$(document).ready(function() {
    var max_fields      = 100; //maximum input boxes allowed
    var wrapper         = $(".input_fields_wrap"); //Fields wrapper
    var add_button      = $(".add_field_button"); //Add button ID

    var x = 1; //initlal text box count

    //THIS WORKS!!
    var arrayFromPHP = ['foo', 'bar'];//<?php echo json_encode($a); ?>;
    $("#country" + x).select2({
        data: arrayFromPHP
    });

    $(add_button).click(function(e){ //on add input button click
        e.preventDefault();
        if(x < max_fields){ //max input box allowed
            x++; //text box increment

            //THIS DOESNT WORK!!
            var arrayFromPHP = ['foo', 'bar'];//<?php echo json_encode($a); ?>;
            $("#country" + x).select2({
                data: arrayFromPHP
            });

            $(wrapper).append('' +
                '<div>' +
                '<select id="country'+ x +'" multiple="multiple" style="width:300px;">' +
                '</select>' +
                '<a href="#" class="remove_field">Remove</a>' +
                '</div>' +
                '<div><input type="number" name="quantity'+ x +'" min="1" max="10"><a href="#" class="remove_field">Remove</a></div>'); //add input box
        }
    });

    $(wrapper).on("click",".remove_field", function(e){ //user click on remove text
        e.preventDefault(); $(this).parent('div').remove(); x--;
    })
});

<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"></script>

<div class="input_fields_wrap">
        <form method="post"><input type="submit" value="Add item" class="add_field_button"></form>
        <div>
            <select id="country1" multiple="multiple" style="width:300px;">
                <!-- Dropdown List Option -->
            </select>
        </div>
    </div>

Donc dans le Jquery j'ai mis 2 commentaires en majuscules rage pour marquer ce que je veux dire qui ne fonctionne pas.

Captures d'écran :

A première vue

This on first sight

Lorsque je clique dans l'onglet multisélection, cela fonctionne.

When I click in the multiselect tab this works.

L'image parle d'elle-même. C'est juste un désordre et si je clique dessus, rien ne se passe.

picture speaks for itself. just messed up and if I click it nothing happends.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X