我有一个代表机构的实体。因此,本机构有多个地址(地址实体),每个地址都有街道,邮政编码等。
事情是:我有一根小树枝,显示有关该机构的所有信息,包括该机构所在地址表。
我想要的只是点击表格中的一个地址并有一个弹出窗口来编辑地址(然后保存按钮会将地址的ID传递给控制器功能)。
最好的方法是什么?这里的问题是,在有人点击点击之前,我没有地址的ID。然后我必须用正确的信息填写表格。
这就是我所拥有的:
地址表(在树枝中):
<tbody>
{% for local in locais %}
<tr class="odd gradeX">
<td>{{ local.name}}</td>
<td>{{ local.address}}</td>
<td>{{ local.postalCode}}</td>
<td><a title="Editar" class="label label-info"
onclick="editLocal('{{ local.name}}',
'{{ local.address}}',
'{{ local.postalCode }}'
'{{ local.id }}');">
<i class="icon-edit icon-white"></i></a></td>
</tr>
{% endfor %}
</tbody>
然后我有以下javascript函数填充编辑本地表单:
function editLocal(name, address, postalCode, id){
oFormObject = document.forms['editLocal'];
oFormObject.elements['fccn_corebundle_localtype_id'].value = id;
oFormObject.elements['fccn_corebundle_localtype_name'].value = name;
oFormObject.elements['fccn_corebundle_localtype_address'].value = address;
oFormObject.elements['fccn_corebundle_localtype_postalCode'].value = codigoPostal;
$('#editLocal').modal('show');
};
这里一切正常! 弹出的表格中包含正确的信息!
然后我想要的是获取id并将其传递给控制器并使用已编辑的信息,这样我就可以保留现有的本地实体!
我有以下内容!
<form id="editLocal" class="form-horizontal"
action= "{{ path('FccnEduroamEntidadeBundle_editLocal',
{ 'idLocal': editLocalForm.vars.value.id }) }}"
method="post" {{ form_enctype(editLocalForm) }}>
{{ form_row(editLocalForm.name) }}
{{ form_row(editLocalForm.address) }}
{{ form_row(editLocalForm.postalCode) }}
{{ form_rest(editLocalForm) }}
<div class="form-actions">
<button class="btn" type="submit">Guardar</button>
</div>
</form>
这里的问题是 editLocalForm.vars.value.id 绝对没有任何回报!
但是当我在chrome上检查这个标签时我有:
<input type="hidden" id="fccn_corebundle_localtype_id" name="fccn_corebundle_localtype[id]" value="1">
有更好的方法吗?任何帮助都会非常感激。
感谢。
丰索
答案 0 :(得分:2)
我不确定我是否正确,但我会说:
为什么要在控制器的路径中使用id?
你可以通过POST获取id并将其传递给persist 据我所知,id在表单中通过javascript设置到输入字段
<input type="hidden" id="fccn_corebundle_localtype_id" name="fccn_corebundle_localtype[id]" value="1">
所以它应该在你的请求中,你实际上在路线中不需要它。