我想从我的模板枝条中获取输入字段的值,而不是使用javascript。 我的输入字段没有表单,它是隐藏的输入。
{% block body -%}
<input type="hidden" name="id_client" id="id_client" value="123"/>
...
{% endblock %}
我想这样做:
{{ path('client_view',{"id": value_Of_Hidden_Input}) }}
如何获得value_Of_Hidden_Input
修改
我的要求:
我有一个客户列表,每个客户都有一个按钮,可以显示客户"Modifier coordonnées"
的详细信息。
我想点击一个客户AJAX函数将执行动作showAction
这是我的代码:
{% block body -%}
<div class="tab-client">
<table id="mytable" class="table table-bordred table-striped" cellpadding="0" cellspacing="0">
<thead>
<tr>
<th>Raison Sociale</th>
<th>Identifiant</th>
<th>M. de passe</th>
<th>Solde actuel</th>
<th class="text-center sty-td-action">Action</th>
</tr>
</thead>
<tbody>
{% for entity in entities %}
<tr>
<td>{{ entity.raisonSociale}} </td>
<td>{{ entity.login }}</td>
<td>{{ entity.password }}</td>
<td>{{ entity.soldeSMS }}</td>
<td>
<a class="modifier-client" id="modif_coordonnee"><span class="glyphicon glyphicon1">Modifier coordonnées</span></a>
<a href="#historique" class="modifier-client"><span class="glyphicon glyphicon2">Voir Historique</span></a>
<a href="#ajout" class="modifier-client"><span class="glyphicon glyphicon3">Ajout transaction</span></a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div><!--tab-client-->
{% endblock %}
{% block javascripts %}
<script>
$("#modif_coordonnee").click(function() {
$.ajax({
//On lui indique le type d'envoie des informations
type: 'POST',
//On lui indique le chemin de la fonction
url: '{{ path('client_show',{"id": value_of_id_client}) }}',
//On lui donne la valeur du choix qu'on a fait, et id est la variable qui va contenir notre valeur, nous la retrouvons dans notre controller
//Enfin nous lui disons de remplir notre formulaire avec le resultat
success: function(response)
{
......
}
}
)});
</script>
{% endblock %}
我的问题是如何确定value_of_id_client
?
答案 0 :(得分:3)
试试这个。
{{ path('client_view',{"id": form.name_field_hidden.vars.value}) }}
了解有关http://symfony.com/doc/current/reference/forms/twig_reference.html
的更多信息答案 1 :(得分:1)
首先:id
在整个文档中必须是唯一的。如果您有多个目标,请使用class
- 属性。我还使用HTML5 url
- 属性向您的循环中的每个实体添加了包含相应id
的当前data
:
{% for entity in entities %}
[…]
<a class="modifier-client handler" data-href="{{ path('client_show',{ 'id': entity.id }) }}">
<span class="glyphicon glyphicon1">Modifier coordonnées</span>
</a>
[…]
{% endfor %}
在JavaScript部分中,您必须更改选择器并检索当前单击元素的网址:
$('.handler').click(function() {
var href = $(this).data('href');
$.ajax({
[…]
url: href,
[…]
));
});
答案 2 :(得分:0)
您需要使用FOSJsRoutingBundle生成一个正确的 Symfony路径,该路径接收一个参数并将其放在URL的正确部分(根据您的路由,您的变量部分可能在URI中间的某个地方!)
您必须关注所有installation instructions for the bundle,并确保expose the route in question。
然后通过传递jQuery检索的值来将值拉入Routing.generate
函数:
url: Routing.generate('client_show', {id: $('#id_client').val()}),
答案 3 :(得分:-1)
你不能这样做,试试(js):
{{path('client_view')}}/+$("#id_client").val()
答案 4 :(得分:-1)
我认为处理此问题的正确方法是在控制器中。
发布表单时,请将该隐藏值并将其注入模板。
从Request对象中提取id_client。
$this->render('TEMPLATE', array('client_id'=>$request->query->get('id_client'));
然后在您的模板中,您可以使用client_id变量。