如何通过ajax用细枝显示变量?

时间:2018-11-20 19:19:48

标签: php json ajax symfony twig

我有一个通过页面上的Ajax加载表单的函数。

mypage.html.twig:

Vue()

MyController.php

Vue()

这是加载的表单(form.html.twig):

function forms(e,el) {

  var id = $(el).attr("data-id");
  var target = $(el).attr("data-target");

  e.preventDefault();
  var $link = $(e.currentTarget);
  $.ajax({
      method:'POST',
      data: {
        "id": id,
        "target": target
      },
      url: $link.attr('href')
  })
}


$('.create-item').on( 'click', function (e) {
      forms(e,this);
});

该表格已正确加载。但是我要在 $response = new JsonResponse( array( 'message' => 'Success', 'output' => $this->renderView('form.html.twig', array( 'entity' => $item, 'form' => $form->createView(), ))), 200); return $response; 区域加载变量<section class="content-header" style="margin-bottom:20px"> <h1 style="float:left;margin-bottom:30px">{{ target }}</h1> </section> <section class="content" style="clear:left"> <div class="form-group"> {{ form_start(form) }} {{ form_end(form) }} </section>

它不起作用,我收到一条错误消息:

  

变量“目标”不存在。

1 个答案:

答案 0 :(得分:2)

您没有将发布的值target传递给视图

$response = new JsonResponse(
        array(
          'message' => 'Success',
          'output' => $this->renderView('form.html.twig',
          array(
            'entity' => $item,
            'form' => $form->createView(),
            'target' => $target, //<-----
          ))), 200);
          return $response;