2016-05-08 8 views
0

Я хочу создать регистрационную форму для агента, но один агент должен иметь возможность регистрировать, сколько агента они хотят.как передать код twig из javascript в файл twig?

Полные поля пользователя (имя, фамилия и т. Д.), И они должны ответить на вопрос: Хотите добавить нового агента? -> смотреть код добавления:

   <div class="form-group"> 
       <label for="new_agent">Would you like add new agent:</label> 
       <div class="radio new_agent_div"> 
        <label class="radio-inline"> 
         <input type="radio" name="new_agent" id="new_agent" value="1"> Yes 
        </label> 
        <label class="radio-inline"> 
         <input type="radio" name="new_agent" id="new_agent2" value="0" > No 
        </label> 
       </div> 
      </div> 

<div class="add-agents"></div> 

, если они проверили Да я запускаю код JQuery:

jQuery(document).ready(function($) { 

    $(".new_agent_div").change(function(){ 


     var html = [ 
      '    <div class="form-group">', 
      '     <label for="name">First Name</label>', 
      '     <input type="text" class="form-control" name="name" id="name" value="{{app.request.get("name")}}" placeholder="">', 
      '     {% if validation["name"][0] is defined %}', 
      '      <span class="help-block">', 
      '       <span class="glyphicon glyphicon-exclamation-sign"></span>', 
      '       {{validation["name"][0]}}', 
      '      </span>', 
      '     {% endif %}', 
      '    </div>' 
     ].join(''); 

     if ($('#new_agent').is(':checked')) { 
      $('.add-agents').html(html); 
     } 

     if ($('#new_agent2').is(':checked')) { 
      $('.add-agents').html(''); 
     } 

    });  
}); 

После этого должно отображаться снова, если добавить нового пользователя ...

Что проблема? Когда я нажимаю «Да», я получил теги Twig в виде строки. Посмотрите: twig tags

Что мне делать? Может быть, некоторые фильтры или что-то вроде этого?

+2

где вы кладете яваскрипт код? Вы должны поместить его в файл twig xxx.html.twig – Soufiene

ответ

1

Почему вы не поместили html по умолчанию и скрыть/показать, когда изменяется значение радио?

<div class="form-group"> 
    <label for="new_agent">Would you like add new agent:</label> 
    <div class="radio new_agent_div"> 
     <label class="radio-inline"> 
      <input type="radio" name="new_agent" id="new_agent" value="1"> Yes 
     </label> 
     <label class="radio-inline"> 
      <input type="radio" name="new_agent" id="new_agent2" value="0" > No 
     </label> 
    </div> 
</div> 

<div class="add-agents" style="display:none;"> 
    <div class="form-group"> 
     <label for="name">First Name</label> 
     <input type="text" class="form-control" name="name" id="name" value="{{app.request.get("name")}}" placeholder=""> 
     {% if validation["name"][0] is defined %} 
      <span class="help-block"> 
      <span class="glyphicon glyphicon-exclamation-sign"></span> 
       {{validation["name"][0]}} 
      </span> 
     {% endif %} 
    </div> 
</div> 

И тогда JS выглядит

jQuery(document).ready(function($) { 

    $(".new_agent_div").change(function(){ 

     if ($('#new_agent').is(':checked')) { 
      $('.add-agents').css("display" , "block"); 
     } 

     if ($('#new_agent2').is(':checked')) { 
      $('.add-agents').css("display" , "none"); 
     } 

    });  
}); 
Смежные вопросы