2015-06-24 4 views
2

У меня есть этот controller.phpSymfony2 передать переменную из контроллера в JavaScript

$repository = $this->getDoctrine()->getManager()->getRepository('TechappStatsBundle:ParentForm'); 
    $data = $repository->findBy(array(),array('id' => 'desc'),1,0); 

    $formulaire = new ParentForm(); 

    $parent= $this->get('form.factory')->create(new ParentFormType(),$formulaire); 

    if ($parent->handleRequest($request)->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 
     $em->persist($formulaire); 
     $em->flush(); 
    } 

    return $this->render('TechappStatsBundle:Stats:index.html.twig',array("res" => $data, 
     "parentform"=>$parent->createView(),)); 

Я хочу, чтобы проверить, на мой взгляд переменную res с JS, если она равна определенному значению или нет, но я не знайте, как его передать.

+0

Ваш JS находится в шаблоне 'index.html.twig'? или в отдельном JS-файле? – DevDonkey

ответ

1

Вы можете передать параметры из контроллера, как:

return $this->render('TechappStatsBundle:Stats:index.html.twig', array(
       "res" => "Your data here")); 

И вы можете получить доступ к параметру «Рес» в index.html.twig как:

{% block js %} 
<script type="text/javascript"> 
var res = '{{ res }}'; 
alert(res); 
</script> 
{% endblock %} 
+0

спасибо, что это работает как ожидалось – SlimZ

0

Если вы хотите передать данные на Javascript, вы можете обновить свой вид либо:

  • Добавить скрытый вход (если это форма), которая содержит значение данных
  • Добавить данные к DIV или P (или любой другой), что вы закроете CSS
  • Добавить атрибут в определенной области, например data-<field>

После того, как вы получите его, вы можете легко получить значение от jQuery.

1

Мой вариант всегда отправить его в данных стоимости,

Вы можете сделать что-то вроде

<div id="res-result" data-res="{{ res }}" style="display: none;"> 

ДИВ не нужно быть скрыты, если это что-то связанное с DIV я всегда ставлю его внутри DIV связанных, даже если он не скрыт

, а затем из Jquery:

resValue = $('#res-result').data('res'); 

Наличие JS-файла за пределами HTML является самым чистым способом. IMO

Смежные вопросы