Symfony2上的Ajax填充字段(类别填充子类别)
我想在从选择框中选择类别时填充子类别。 我在互联网上关注了很多其他的东西,但是我觉得它不适合与Ajax一起使用,因此没有像我希望的那样使用动态表单 你知道我该怎么做吗Symfony2上的Ajax填充字段(类别填充子类别),ajax,forms,symfony,Ajax,Forms,Symfony,我想在从选择框中选择类别时填充子类别。 我在互联网上关注了很多其他的东西,但是我觉得它不适合与Ajax一起使用,因此没有像我希望的那样使用动态表单 你知道我该怎么做吗 谢谢。您应该编写一个控制器,它将处理您的ajax请求,即使用json进行响应。然后,您应该在表单页面上编写一个JS代码,该代码将请求此控制器操作、处理响应并更新您的selectbox 也就是说,您有一个带有路由名称categories\u ajax\u path的控制器,它响应类似JSON的 [ {'label':'some
谢谢。您应该编写一个控制器,它将处理您的ajax请求,即使用json进行响应。然后,您应该在表单页面上编写一个JS代码,该代码将请求此控制器操作、处理响应并更新您的selectbox 也就是说,您有一个带有路由名称categories\u ajax\u path的控制器,它响应类似JSON的
[
{'label':'some category 1','id':1,'group':'group 1'},
{'label':'some category 2','id':2,'group':'group 2'},
{'label':'some category 3','id':3,'group':'group 1'}
]
然后像这样向页面添加脚本
<script>
$.getJSON('{{ path('categories_ajax_path') }}', function (data) {
var opt_groups = {};
$.each(data, function (i, value) {
if (!(value.season in opt_groups))
opt_groups[value.group] = [];
var opt = $('<option/>');
opt.val(value.id);
opt.text(value.title);
opt_groups[value.group].push(opt);
});
for (var group in opt_groups) {
if (!opt_groups.hasOwnProperty(group)) continue;
var $opt_group = $("<optgroup/>", {'label': group});
opt_groups[season].forEach (function ($item){
$opt_group.append($item);
});
$('#category_list').append($opt_group);
}
})
</script>
问题是,ajax填充的表单可能无法通过symfony内置验证,因为这不是symfony期望的选择,因此需要进行其他调整