点击上的laravel javascript获取表中所有按钮的相同ID

时间:2018-02-26 03:12:58

标签: javascript laravel

我的桌子上有按钮,如:

@foreach($orders as $order)
<tr>
  //other td's...
  <td><button class="btn btn-block btn-theme02 pay-button" id="{{$order->id}}" type="submit">Pay!</button></td>
</tr>
@endforeach

和JavaScript一样:

<script type="text/javascript">
  $('.pay-button').click(function (event) {
    $.ajaxSetup({
        headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }
      });
    event.preventDefault();
    // $(this).attr("disabled", "disabled");
    var prdfoId = $(".kghgh").val();
        $.ajax({
          url: '{{url("orderspayonline")}}/'+encodeURI(prdfoId),
          type: "POST",
          cache: false,

          success: function(data) {
//codes...
}
});
    });
</script>

问题是我在所有tr中的付款按钮都是order id

  

我的意思是如果我的订单ID为1,我会收到5,如果我的订单ID为2,我会收到   5等等。 (5是数据库中的最新订单ID)

2 个答案:

答案 0 :(得分:1)

执行此类任务的最佳方法是使用数据属性。将id="{{$order->id}}"更改为data-id="{{$order->id}}",您可以通过在jQuery中调用$(this).data('id')来获取特定ID。见下文:

@foreach($orders as $order)
<tr>
  //other td's...
  <td><button class="btn btn-block btn-theme02 pay-button" data-id="{{$order->id}}" type="submit">Pay!</button></td>
</tr>
@endforeach

JS代码:

<script type="text/javascript">
  $('.pay-button').click(function (event) {
    var prdfoId = $(this).data('id');
    $.ajaxSetup({
        headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }
      });
    event.preventDefault();
    // $(this).attr("disabled", "disabled");
        $.ajax({
          url: '{{url("orderspayonline")}}/'+encodeURI(prdfoId),
          type: "POST",
          cache: false,

          success: function(data) {
//codes...
}
});
    });
</script>

答案 1 :(得分:0)

目前您使用此错误ID

var prdfoId = $(".kghgh").val();

其中只有1个输入具有固定值。为了获得实际价值,您已将orderId作为id放在每个按钮上。您可以在js中使用它来满足您的需求

<script type="text/javascript">
  $('.pay-button').click(function (event) {
    var prdfoId = $(this).attr("id"); // here will get the correct id
    $.ajaxSetup({
        headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }
      });
    event.preventDefault();
    // $(this).attr("disabled", "disabled");
        $.ajax({
          url: '{{url("orderspayonline")}}/'+encodeURI(prdfoId),
          type: "POST",
          cache: false,

          success: function(data) {
//codes...
}
});
    });
</script>