如何使用Symfony2 + Twig呈现动态选择

时间:2012-02-20 22:12:10

标签: symfony twig symfony-forms

我正在尝试根据数据库中的某些现有条件动态加载选择框的选项。有用的信息是有3个类,一个Pet,它有一个品种和类型,一个Breed,它有一个名字和类型,Type是类似'Dog'或'Cat'。

在编辑宠物时,我有两个从Doctrine / Symfony2填充的下拉列表。

Type [Select One]
Breed [Select One]

目前,品种选择列出了所有品种的狗和猫,我想选择'类型'并强制品种选择框仅根据该类型列出品种。

在使用Symfony之前,我使用原始的php / javascript完成了这项工作,并且在Symfony中有一些处理它的最佳实践。

任何建议都将不胜感激。我可以提供所需的任何其他信息,但希望尽可能简单。

1 个答案:

答案 0 :(得分:0)

我没有在第一个选择中找到除.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 它允许您使用twig语法在您的JavaScript中构建路由。因此,它允许您访问其变量。