2016-05-31 14 views
-2

私は私の小枝ファイルにこのコードを持っている:あなたが見ることができるようにtwigで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); 
     } 
    }) 

} 

、私はAJAXのURLセクションにVAR「cliente」を入れたいが、私はそれを行うカント要求されたとして、このよう


編集

ここでは、私の完全なコードです:

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

twigにjavascript変数を渡すことはできません。小枝は前倒しです。 – DarkBee

答えて

0

2オプション:あなたが使用できるように は小枝であなたのJSを置く:

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

またはhttps://github.com/FriendsOfSymfony/FOSJsRoutingBundle

+0

答えがありがとう、私はあなたの最初のオプションが好きですが、私は始まり以来この方法を行ったと – xXNukem

+0

私はそれが動作すると確信しています、あなたはjs plsを含む小枝ファイルを投稿できますか? –

+0

okここに私の小枝ファイルのコードがあります。新しい回答 – 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

"cliente"変数と同じエラーを出していますURLキーには存在しません – xXNukem

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> 
関連する問題