0
votes

Convertir une matrice PHP en matrice JavaScript avec SELECT2

J'ai le tableau PHP suivant dans une variable Laravel appelé $ salaires code> qui est transmis à une vue sur la lame: xxx pré>

dans la vue de ma lame J'ai une goutte Ce qui a changé, je veux charger une liste déroulante Select2 avec les options ci-dessus. Vous trouverez ci-dessous mon code: P>

{2: "£8, Per hour", 3: "£10, Per hour", 23: "Up to £10000, Per annum", 24: "£10,000 - £15,000, Per annum"}


0 commentaires

3 Réponses :


0
votes

Votre tableau doit avoir la structure comme ceci: xxx

HTTPS : //select2.org/data-sources/arrays


2 commentaires

Les clés sont importantes car elles sont les valeurs d'option et le texte de salaire est l'étiquette d'option.


Donc, votre matrice doit avoir cette structure: php [["id '=> 2," texte "=>" £ 8, par heure "]]] Select2.org/data-Sources/arrays



0
votes

exactement comme Serhii dit, extrayez simplement les valeurs de votre réseau associatif avant de le coder:

$(document).on("change", ".js-selector", function() {

     var options = {!! json_encode(array_values($salaries)) !!};

     $("#salary_list").empty().select2({
        data: options
     });

})


1 commentaires

Les clés sont importantes car elles forment les valeurs d'option et le texte de salaire est l'étiquette d'option.



1
votes

Vous devez transformer vos données au format correct, ici Vous pouvez voir le format de données correct: xxx

Vous pouvez transmettre le tableau dans le bon format à la vue, quelque chose comme: xxx

Cela donnerait un résultat en quelque chose comme ceci: xxx

ou vous pouvez transformer la matrice en JavaScript, la documentation SELECT2 explique ici Comment transformer vos données:

Select2 nécessite que la propriété ID soit utilisée pour identifier de manière unique la Options affichées dans la liste des résultats. Si vous utilisez une propriété autre que id (comme pk) d'identifier de manière unique une option, vous devez mappez votre ancienne propriété à identifier avant de le transmettre à Select2.

Si vous ne pouvez pas faire cela sur votre serveur ou que vous êtes dans une situation où L'API ne peut pas être changé, vous pouvez le faire en JavaScript avant le transmettre à SELECT2: xxx

Dans votre cas, ce serait quelque chose comme ceci: xxx


2 commentaires

Je suis incapable de transformer sur le serveur alors comment faire une boucle via {2: "8 £, par heure", 3: "10 £, par heure", 23: 10000 £, par an ", 24:" 10 000 £ - 15 000 £, par an "} avec JavaScript pour l'obtenir au format correct?


Donc, ce n'est pas une question PHP, mais JavaScript.