Как сделать динамический выбор с помощью Symfony2 + Twig

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

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

Type [Select One]
Breed [Select One]

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

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

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

1 ответ

Решение

Я не нашел другого способа, кроме.change jquery для первого выбора, а затем для вызова 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 с использованием синтаксиса веток. Таким образом, он позволяет вам получить доступ к своим переменным.

Другие вопросы по тегам