javascript - 在ajax symfony中传递带有参数的 Controller

标签 javascript php jquery ajax symfony

我正在与 symfony 合作开展一个电子商务项目。我想显示与每个产品相关的弹出窗口。该弹出窗口有一个列表选项。因此,我喜欢通过 Ajax 将该窗口的 Controller 传递为动态的,为此:

HTML 代码

  {% for  p in products %}
     <a id="#basket-modal" href="#" data-id="{{ p.id }}" data-toggle="modal" data-target="{{ modal }}" class="btn btn-primary">
  {% endfor %}

脚本

<script type="text/javascript">
 $(document).ready(function(){

  $("#basket-modal").on({ click: function() {


   var op_prod_id = $(this).data('id');

   $.ajax({

       url: "{{ path('ajout_prod_panier', {'id': op_prod_id }) }}" , 
       type: "POST",
       data: "op_prod_id="+op_prod_id,
       success: function(data, status, xhr) {
         console.log(data); 
       },
   error: function(jqxhr, status, error) {
     console.log(error);
       }
   });
   event.stopPropagation();
 }
});
});
</script>

总是出现错误消息的问题:

Variable "op_prod_id" does not exist.

在网址中:

"{{ path('ajout_prod_panier', {'id': op_prod_id }) }}"

最佳答案

var op_prod_id = $(this).data('id');是一个js变量。

{{ path('ajout_prod_panier', {'id': op_prod_id }) }} 是一个 Twig 表达式。

尝试类似的事情:

 <a href="#" data-id="{{ p.id }}" data-url={{ path('ajout_prod_panier', {'id': p.id}) }}"  data-toggle="modal" data-target="{{ modal }}" class="basket-modal btn btn-primary">

在你的js中

$(".basket-modal").on({ click: function() {

    var op_prod_id = $(this).data('id');
    var op_prod_url = $(this).data('url');
    ....
    url: op_prod_url

关于javascript - 在ajax symfony中传递带有参数的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45811528/

相关文章:

javascript - 不允许连续出现多个相同的字符

javascript - 如何在 Angular 中为自定义验证器添加自定义验证错误消息

javascript - 如何在不使用 jQuery 刷新页面的情况下实现这一点?

javascript - 使用 Node 请求模块的 UTF8 字符编码

jquery - 就速度而言: jQuery or Mootools

javascript - jQuery/JavaScript : is the garbage collector clearing my variables?

javascript - 具有外部 block 变量的事件

php - Wordpress-如何仅将代码插入特定页面的标题?

php - 在php中从数据库中提取前三项

php - MySQL Select Query 全局使用(多个PHP页面)