我正在创建一个具有以下格式的注册。
如果国家/地区发生变化,那么我需要相应地更改子字段。
1-国家 状态 城市 郊区
在我的COMPANY BRANCH实体中,我将郊区密钥保存为一对多。公司分公司位于郊区。
如果我改变公司组,那么它应该改变孩子的。
2-公司集团 公司
在我的COMPANY BRANCH实体中,我将公司密钥保存为外键。一对多的关系。公司有多个分公司,一个分公司只属于一家公司。
3-分支地址(文本)
4-其他一些文本字段。
问题:如何实现嵌入式表单,集合或简单的Ajax调用。
我已经尝试了Dependent forms教程,但我有两个依赖项。国家和公司集团。对我来说很难在我的项目中映射这些东西。如果有人提供详细说明如何操作。那太好了。谢谢,
答案 0 :(得分:0)
在我看来,实现这一目标的最佳方法是将子字段设置为“禁用”,为每个字段设置一个空值,并将jQuery监听器附加到每个父下拉列表中。
这样,您就可以通过对控制器的ajax调用来获取子字段的值,该控制器会向您发送一个JSON数组。
例如,您的第一个父/子元素是“国家/地区”和“州”:
<select name="country_list">
<option value="1">USA</option>
</select>
<select name="states_list">
<option value="0">-- empty value --</option>
</select>
然后你的jQuery应该是这样的:
$("#country_list").change(function() {
var countryId = $('#country_list').val();
var callUrl = 'CONTROLLER URL TO CALL';
// make your ajax call here
$.ajax({
url : callUrl,
type : 'GET',
dataType : 'json',
success : function(response){
// populate the child list with the JSON values
$.each(response,function(key, value) {
$('#states_list').append('<option value=' + key + '>' + value + '</option>');
});
// enable the child list
$('#states_list').prop('disabled', false);
}
});
});
当然你的控制器应该返回一个JSON数组。