如何通过ajax显示带有twig的变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过ajax显示带有twig的变量?相关的知识,希望对你有一定的参考价值。

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

mypage.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);
});

MyController.php

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

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

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

表单已正确加载。但在<h1></h1>地区,我想加载变量target

它无法正常工作,我收到一条错误消息:

变量“目标”不存在。

答案

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

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

以上是关于如何通过ajax显示带有twig的变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何将php变量传递给twig模板

使用 Twig 处理动态 Javascript 文件

如何将查询url参数传递给twig模板

在带有 Symfony2 的 Twig 中使用 % stylesheets % 标签时通过 Twig 运行 CSS 文件

带有片段的 Android Up 按钮未显示完整片段

Django如何通过单击带有变量的提交按钮从ajax调用views.py中的函数