Como pasar datos de twig, bucle {% for %}, en java script

Tema en 'Soporte' iniciado por Luis, el 28 Dic 2017.

  1. Luis

    Luis New Member

    Registrado:
    13 Dic 2017
    Mensajes:
    5
    Me Gusta recibidos:
    0
    Puntos de trofeo:
    1
    Buen dia, de ajntemano gracias prinick, ya que este framework ayuda del todo en tiempo y esfuerzo.
    Me he topado con un problema y es el siguiente:
    Diseñe una vista con un formulario y dentro de este agregue un button que al clickearlo se active una funcion js, la cual añade N campos. Hata aqui todo bien

    [​IMG]
    Ahora bien. El problema esta en que el campo que añade es un bucle for en formato twig. Queda asi el .js:
    Insertar CODE, HTML o PHP:
    
    var nextinput = 0;
    function AgregarmasCampos(){
       nextinput++;
       campo = '<div class="form-group col-sm-5">'+
          '<label>Grupo:</label>'+
          '<select class="form-control" name="OrganismoSeleccionado'+nextinput+'" id="OrganismoSeleccionado'+nextinput+' " required="required">'+
             '{% for r in datagrupos if false != datagrupos %}'+
                '<option value='{{ r.ID_Organismos }}''+
                   '{{ r.Equipo }} -> <b>{{ r.NombreOrganismo }}</b>'+
                '</option>"'+
              '{% endfor %}'+
           '</select>'+
        $("#campos").append(campo);
      }
    
    Todo va bien y añade los campos que yo selecciono pero no me aparece la lista del bucle for. Esta si me aparece si la pego directo en la vista .twig. Según yo necesito pegarla aqui para que a la hora de clickear el button "agregar campo" me aparesca este.

    Ese es mi problema. Solo quiero saber como poder hacer que se despliege el bucle for o alguna alternativa Gracias
     
  2. Marco Corona

    Marco Corona New Member

    Registrado:
    29 Sep 2017
    Mensajes:
    26
    Me Gusta recibidos:
    6
    Puntos de trofeo:
    3
    Género:
    Masculino
    Saludos

    Creo que esta un poco confundido, TWIG funciona con PHP por lo que el servidor "contruye" la vista antes de enviarla al navegador, por el contrario en JS todo se realiza en el navegador, en resumen debes incrustar el código html sin considerar TWIG ya que no funcionará, en todo caso carga con twig tu select, sin opciontes y con JS utiliza each para cargar tus opciones.
     
    A prinick y Luis les gusta esto.
  3. Luis

    Luis New Member

    Registrado:
    13 Dic 2017
    Mensajes:
    5
    Me Gusta recibidos:
    0
    Puntos de trofeo:
    1
    Hola. Me puedes ayudar con eso amigo porque no se me ocurre nada.
     
  4. Marco Corona

    Marco Corona New Member

    Registrado:
    29 Sep 2017
    Mensajes:
    26
    Me Gusta recibidos:
    6
    Puntos de trofeo:
    3
    Género:
    Masculino
    Hola, pues lo que te puedo recomendar es que estudies más Javascript, por experiencia es lo que debes hacer para que sepas distinguir como resolver una necesidad.

    Respecto a lo que necesitas, te recomiendo que crees el select que necesitas de la manera habitual con twig

    Ya que creaste el primer select de la manera habitual con twig, puedes duplicar tu select con Javascript (Jquery), utilizando la función clone, algo así;


    ESTE ES TU SELECT
    PHP:
          <form id="form">
                <
    select id="datos">
                    <
    option>Uno</option>
                    <
    option>Dos</option>
                    <
    option>Tres</option>
                    <
    option>Cuatro</option>
                    <
    option>Cinco</option>
                    <
    option>Seis</option>
                </
    select>
            </
    form>
    HTML:
    $('#datos').clone().appendTo("#form");
    
    Esto lo que hace es copiar el select con el ID DATOS y agregarlos al final del form con ID FORM, obviamente tendrás que revisar idear como manejes tus select para que no se duplique el ID etc.

    Feliz A{o
     
    Última edición: 29 Dic 2017
  5. prinick

    prinick Ocrend Developer Miembro del Staff

    Registrado:
    28 Sep 2017
    Mensajes:
    76
    Me Gusta recibidos:
    9
    Puntos de trofeo:
    8
    Género:
    Masculino
    Profesión:
    Engineer
    País:
    venezuela
    Perdón por la tardanza, he estado full con Ocrend.

    Otra alternativa que tienes que utilizar etiquetas <script> y colocar allí tu código javascript para que funcione con TWIG, ya que éste lo renderiza PHP y no el navegador, por tanto cuando colocas código TWIG en ficheros individuales .js no funcionará.

    Saludos
     

Compartir esta página