Champs de sac à dos Laravel - fonctionnalité select_from_array

J'utilise un sac à dos Laravel. Avoir créé un nouveau formulaire de demande. Avoir créé plusieurs champs parmi lesquels choisir en utilisant 'select_from_array' :

$this->crud->field('range')->type('select_from_array)->label(__('number range'))
->options(Group::NUMBER_RANGE);
$this->crud->field('range1')->type('select_from_array)->label(__('letter range'))
->options(Group::LETTER_RANGE);
$this->crud->field('range2')->type('select_from_array)->label(__('symbol range'))
->options(Group::SYMBOL_RANGE);

Par exemple, chaque champ a 3 valeurs déroulantes parmi lesquelles choisir (pour le rendre plus clair, disons que la plage de nombres a 1/2/3, puis la plage de lettres a A/B/C, et la plage de symboles a Soleil/Lune/Vent ).

Je veux appliquer cette fonctionnalité - si dans la plage de nombres je sélectionne 1, je veux que cette plage de lettres me montre juste A et B (et C devrait disparaître des choix de valeur), et la plage de symboles me montre juste Wind. Ou si je choisis la plage de lettres de champ et que je choisis la valeur d'option BI, je veux que ce champ de plage de symboles me montre juste Sun.

En général, je veux que les champs réagissent les uns avec les autres en fonction des choix que j'ai faits sur le champ précédent, le champ suivant affichera différentes options parmi lesquelles je pourrais choisir.

Comment puis-je faire ceci?

Merci d'avance:)


Solution du problème

Le sac à dos ne facilite pas actuellement la tâche, mais cela ne la rend pas difficile non plus.

Option A - javascript

Vous pouvez pousser un peu de javascript sur la page, en utilisant le script widget, qui fera tout ce que vous voulez, y compris cette fonctionnalité.


Widget::add()->type('script')->content('assets/js/admin/request_form.js');

Il y a une demande d'extraction active essayant de faciliter l'interaction avec les champs sur le front-end également ( PR #4312 ) mais jusqu'à ce que cela soit fusionné, vous pouvez utiliser vanilla JS ou jQuery pour faire ce que vous voulez.

Option B - select2_from_ajax

Alternativement, vous pouvez utiliser le type de champ select2_from_ajax, qui vous permet de le faire en utilisant l'attribut « dépendant ». Étant donné que vous contrôlez le point de terminaison AJAX, vous pouvez renvoyer des résultats différents en fonction des autres choix de formulaire.

Mais:


  • Je pense que faire de ces 3 sélections des requêtes AJAX est exagéré, alors qu'un peu de JS peut faire la même chose pour les sélections régulières;

  • Il s'agit d'un champ PRO, il n'est donc disponible que si vous avez acheté l'addon PRO;

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"