我的twig文件中有这段代码:
<script>
function trabajoEquipos(id)
{
var cliente = id
$.ajax({
dataType: "json",
url: {{ path("work_trabajoEquipos",{id: cliente}) }},
type: "POST",
data: {"cliente":cliente},
success: function(data)
{
$("#divajax").html(data);
}
})
}
正如你所看到的,我想把var&#34; cliente&#34;进入ajax的URL部分,但我不能这样做
修改
这是我要求的完整代码:
{% extends 'base.html.twig' %}
{% block body %}
{{parent()}}
<div class="container">
<div class="page-header">Escribe los datos del trabajo encargado por el cliente: </div>
<div class="col-md-12">
<div class="row well">
<div style="padding-left:250px; padding-right:250px;">
{{ form_start(form, {'attr' : { 'role' : 'form', 'novalidate' : 'novalidate'} }) }}
<div class="form-group">
{{ form_label(form.titulo) }}
{{ form_widget(form.titulo, {'attr': { 'class' : 'form-control', 'placeholder' : 'Nombre del trabajo' } }) }}
<span class="text-danger">{{ form_errors(form.titulo) }}</span>
</div>
<div class="form-group">
{{ form_label(form.descripcion) }}
{{ form_widget(form.descripcion, {'attr': { 'class' : 'form-control', 'placeholder' : 'Descripcion del trabajo' } }) }}
<span class="text-danger">{{ form_errors(form.descripcion) }}</span>
</div>
<div class="form-group">
{{ form_label(form.fechainicio) }}
{{ form_widget(form.fechainicio, {'attr': { 'class' : 'form-control', 'placeholder' : '' } }) }}
<span class="text-danger">{{ form_errors(form.fechainicio) }}</span>
</div>
<div class="form-group">
{{ form_label(form.fechaentrega) }}
{{ form_widget(form.fechaentrega, {'attr': { 'class' : 'form-control', 'placeholder' : '' } }) }}
<span class="text-danger">{{ form_errors(form.fechaentrega) }}</span>
</div>
<div class="form-group">
{{ form_label(form.client) }}
{{ form_widget(form.client, {'attr': { 'class' : 'form-control', 'onchange' : 'trabajoEquipos(this.value)' } }) }}
<span class="text-danger">{{ form_errors(form.client) }}</span>
</div>
<div class="form-group">
{{ form_label(form.user) }}
{{ form_widget(form.user, {'attr': { 'class' : 'form-control', 'placeholder' : '' } }) }}
<span class="text-danger">{{ form_errors(form.user) }}</span>
</div>
<div class="form-group">
{{ form_label(form.prioridad) }}
{{ form_widget(form.prioridad, {'attr': { 'class' : 'form-control', 'placeholder' : '' } }) }}
<span class="text-danger">{{ form_errors(form.prioridad) }}</span>
</div>
<div class="checkbox">
{{ form_widget(form.terminado) }}<b>Terminado</b>
<span class="text-danger">{{ form_errors(form.terminado) }}</span>
</div>
<p>
{{ form_widget( form.save, { 'label' : ' CREAR TRABAJO', 'attr' : { 'class' : 'btn btn-success' } } ) }}
<a class="btn btn-danger" href="{{ path('user_index')}}">VOLVER<span class="glyphicon glyphicon-menu-left"></span></a>
</p>
{{ form_end(form) }}
</div>
</div>
<div id="divajax" class="row well">
</div>
</div>
</div>
</div>
<script>
function trabajoEquipos(id)
{
var cliente = id
$.ajax({
dataType: "json",
url: {{ path("work_trabajoEquipos",{id: cliente}) }},
type: "POST",
data: {"cliente":cliente},
success: function(data)
{
$("#divajax").html(data);
}
})
}
</script>
{% endblock %}
答案 0 :(得分:0)
2个选项: 把你的js放在树枝上,这样就可以使用:
url: {{ path("work_trabajoEquipos",{'id': cliente}) }}
答案 1 :(得分:0)
为url:
键添加一些引号:
function trabajoEquipos(id)
{
var cliente = id
$.ajax({
dataType: "json",
url: "{{ path('work_trabajoEquipos', {id: cliente}) }}",
type: "POST",
data: {cliente: cliente},
success: function(data)
{
$("#divajax").html(data);
}
})
}
答案 2 :(得分:0)
这是我解决这个问题的方法。 由于您无法将javascript var传递给twig,因此您需要提前计算路径。由于我不熟悉symfony表单构建器,因此我创建了一个伪代码
template.twig
<select id="cbo_client" name="cbo_client">
{% for client in clients %}
<option value="{{ client.getId() }}" data-path="{{ path('work_trabajoEquipos', {id: client.getId() }) }}">{{ client.getName() }}</option>
{% endfor %}
</select>
Javascript:
<script>
$(function() {
$('#cbo_client').on('change', function(e) {
var url = $('option:selected', this).data('path');
$.ajax({
dataType: "json",
url: url,
type: "POST",
data: {cliente: $(this).val(), },
success: function(data)
{
$("#divajax").html(data);
}
})
}
});
</script>