2016-05-31 95 views
-2

我有這樣的代碼在我的樹枝文件:如何在樹枝中的JavaScript變量?

<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「cliente」到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

你是什麼意思 '黑話'?怎麼了? – ksno

+0

出現錯誤,表示該變量不存在於樹枝{{}} – xXNukem

+1

您無法將javascript變量傳遞給樹枝。樹枝被預先渲染。 – DarkBee

回答

0

2個選擇: 把你的JS在樹枝所以你可以使用:

url: {{ path("work_trabajoEquipos",{'id': cliente}) }} 

或使用https://github.com/FriendsOfSymfony/FOSJsRoutingBundle

+0

感謝您的回答,我更喜歡你的第一個選項,但是,我從開始就這樣做,它不工作 – xXNukem

+0

我相信它確實工作,你可以發佈包含js pls的樹枝文件嗎? –

+0

確定這裏是我的樹枝文件的代碼,發佈在一個新的答案 – xXNukem

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); 
      } 
     }) 

    } 
+0

因爲這是相關的,它不會解決OP的問題 – DarkBee

+0

它不適用於我,即時通訊獲得相同的「客戶」變量錯誤不存在到url密鑰中 – xXNukem

0

這將是我解決這個問題的方法。 由於您無法將javascript var傳遞給樹枝,因此需要提前計算路徑。由於我不熟悉,我創建了一個僞代碼

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 symfony的表單生成器:

<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>