Javascript 在ajax symfony中传递带参数的控制器

Javascript 在ajax symfony中传递带参数的控制器,javascript,php,jquery,ajax,symfony,Javascript,Php,Jquery,Ajax,Symfony,我和symfony一起做一个电子商务项目。我想显示一个与每个产品相关的弹出窗口。此弹出窗口包含一个选项列表。因此,我希望通过Ajax将此窗口的控制器传递为动态的,因为: 编码HTML {% for p in products %} <a id="#basket-modal" href="#" data-id="{{ p.id }}" data-toggle="modal" data-target="{{ modal }}" class="btn btn-primary"&g

我和symfony一起做一个电子商务项目。我想显示一个与每个产品相关的弹出窗口。此弹出窗口包含一个选项列表。因此,我希望通过Ajax将此窗口的控制器传递为动态的,因为:

编码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 %}
{%p在产品%}
{%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>

$(文档).ready(函数(){
$(“#篮子模式”)。在({单击:函数(){
var op_prod_id=$(this.data('id');
$.ajax({
url:“{path('ajout_prod_panier',{'id':op_prod_id}}}”,
类型:“POST”,
数据:“op_prod_id=“+op_prod_id,
成功:功能(数据、状态、xhr){
控制台日志(数据);
},
错误:函数(jqxhr、状态、错误){
console.log(错误);
}
});
event.stopPropagation();
}
});
});
问题是我总是有一条错误消息:

变量“op_prod_id”不存在

在url中:

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

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

{path('ajout_prod_panier',{'id':op_prod_id}}}
是一个细枝表达式

试试这样:

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

谢谢@Doydoy44它可以是解决方案:但是我在“$(文档)中还有一个错误。ready(function()”=>$没有defined@DhiaEddineFarah:此错误表示在js代码之前未加载jquery文件。我添加了“”在脚本之前,不会显示此错误,但不会显示弹出窗口display@DhiaEddineFarah:我猜这是同一类型的错误,所以请尝试将js代码放在所有js插件之后,并使用js控制台日志进行调试。祝您好运。:)我会按照您的指示执行所有操作,但弹出窗口仍然不会显示:/
$(".basket-modal").on({ click: function() {

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