2012-08-16 72 views
0

我有一个实体,代表制度中的。因此,该机构拥有多个地址(地址实体),每个地址都有街道,邮政编码等。编辑实体在同一个Symfony2的多个地址枝杈

问题是:我有一根树枝,显示有关该机构的所有信息,包括该机构的地址表放置。

所有我想要的是一个地址,请单击表格,并有一个弹出窗口,编辑地址(然后保存按钮将地址的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">

有没有更好的方式来做到这一点?任何帮助将非常感激。

谢谢。

阿丰

回答

2

我不知道如果我得到你的权利,但我会说:

你为什么想在你的控制器路由的ID?

你可以得到通过POST的ID,并通过它来坚持。
据我了解ID在形式通过JavaScript设置为输入字段

<input type="hidden" id="fccn_corebundle_localtype_id" name="fccn_corebundle_localtype[id]" value="1"> 

所以应该有你的要求,你实际上不需要它的路线。

+0

你明白了,得到了一个可行的答案!有时候你对一个想法感到如此痴迷,以至于你陷入困境。它工作得很好。我所要做的只是 '$ postData = $ request-> request-> get('fccn_corebundle_localtype'); \t $ idLocal = $ postData ['id'];' 非常感谢! – Fonsini 2012-08-17 10:09:31