Как сделать динамический выбор с Symfony2 + Twig - PullRequest
1 голос
/ 21 февраля 2012

Я пытаюсь динамически загрузить опции блока выбора, основываясь на некоторых существующих критериях в моей базе данных. Полезная информация состоит в том, что есть 3 класса: домашнее животное, у которого есть порода и тип, порода, у которой есть имя и тип, и тип, который является чем-то вроде «Собака» или «Кошка».

При редактировании питомца у меня есть два выпадающих списка из Doctrine / Symfony2.

Type [Select One]
Breed [Select One]

В настоящее время в списке «Выбор породы» перечислены все породы собак и кошек. Я бы хотел выбрать «Тип» и заставить поле выбора «Порода» выводить список только пород, основанных на этом типе.

Я сделал это с помощью необработанного php / javascript, прежде чем использовать Symfony, подумал, что есть некоторые рекомендации по работе с ним в Symfony.

Любой совет будет оценен. Я могу предоставить любую необходимую дополнительную информацию, но хотел, чтобы она была максимально простой.

1 Ответ

0 голосов
/ 21 февраля 2012

Я не нашел другого способа, кроме jchange-запроса .change при первом выборе, а затем при вызове ajax с выбранным параметром для повторного заполнения целевого выбора.

$('#Your_source_select').change(function()
{
    $.ajax({
    type: 'POST',
    url: Routing.generate('AJAXDevisOnduleurOptions', { onduleurId: $('#Your_source_select').val() }),
    success: function(msg){
        $('#Your_target_select').children().remove().end().append(msg);
    }
});
});

Обратите внимание, что Your_source / target_select являются полями сущностей. Но, похоже, ты получил эту часть.

Возможно, вы захотите использовать FOSJSRoutingBundle => https://github.com/FriendsOfSymfony/FOSJsRoutingBundle Это позволяет вам строить маршрут в вашем JavaScript, используя синтаксис веток. Таким образом, он позволяет вам получить доступ к своим переменным.

...