单击时LaravelJavaScript会为表中的所有按钮获取相同的id
我的桌子上有一个按钮,如:单击时LaravelJavaScript会为表中的所有按钮获取相同的id,javascript,laravel,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类似:
@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中的付款按钮都获得相同的订单id
我的意思是如果我的订单id是1,我得到5,如果我的订单id是2,我得到5
5等等。5是数据库中的最新订单id
目前,您的id错误,因为您正在使用此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>
执行此任务的最佳方法是使用数据属性。将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>
如果从开发工具进行检查,您是否在这些按钮上看到正确的订单ID?因为您使用的是带有html类属性的ID值,该属性将在遇到第一个类时使用该值。@Nisarg yes i Do.var prdfoId=$.kghgh.val;这一行包含什么?@Kasnady它获取“{{order->id}}”,因为我的路线是隐藏输入。我获取未定义我获取未定义