使用ajax symfony中的参数传递控制器

时间:2017-08-22 07:33:27

标签: 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">
  {% 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>

总是我有错误信息的问题:

  

变量&#34; op_prod_id&#34;不存在。

在网址:

  

&#34; {{path(&#39; ajout_prod_panier&#39;,{&#39; id&#39;:op_prod_id})}}&#34;

1 个答案:

答案 0 :(得分:2)

{{ path('ajout_prod_panier', {'id': op_prod_id }) }}是一个js变量。

<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"> 是一个树枝表达。

尝试类似的东西:

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

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

和你的js

<button type="button" (click)="openModel()">Open Modal</button>

<div #myModel class="modal fade">
  <div class="modal-dialog">
    <div class="modal-content">
     <div class="modal-header">
        <h5 class="modal-title ">Title</h5>
        <button type="button" class="close" (click)="closeModel()">
            <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <p>Some text in the modal.</p>
      </div>
    </div>
  </div>
</div>