首页 > 解决方案 > 在同一个刀片中传递单击按钮的值 - laravel

问题描述

我将以下变量传递给刀片:

@foreach($stampreq as $stampreq)
<a href="" class="stamp_acc">Accept</a>

单击上面的按钮时,会运行一个 jquery 代码来打开一个模式:

<div class="modal fade" tabindex="-1" role="dialog" id="stamp_fb">

单击按钮时,我想将以下 id 传递给 Ajax:

<input type = "hidden" name = "pstusrId"  id="pstusrId" value="{{ $stampreq->id }}">

我收到一个错误“尝试获取非对象的属性”,因为 $stampreq 是一个数组(有多个记录)。如何$stampreq->id将单击的按钮传递<input>给要发送到 AJAX 的标签?

标签: phplaravel

解决方案


您收到错误“尝试获取非对象的属性”,因为您$stampreq在 foreach 方法中的集合和单个循环变量 ( ) 之间使用相同的名称,输入中的值可能从集合/数组中提取. 因此,它看到的不是循环变量,而是数组。

要解决此问题,请将变量更改为不同的值(数组或循环变量):

@foreach($stampreq as $stampreq)

@foreach($stampreqSomethingPlural as $stampreq)

或者

@foreach($stempreq as $stampreqLoop)
  <button class="stamp_acc" value="{{ $stampreqLoop->id }}" data-id="{{ $stampreqLoop->id }}">Accept</button>

我已删除<a>并一键完成所有操作。这样,您可以id根据需要在 AJAX 调用中访问$(this)

然后,在循环中的输入中,您现在可以成功地从循环变量中调用 id(如果您希望稍后从 AJAX 中提取,则将其添加到数据元素中):

 <input type = "hidden" name = "pstusrId"  id="pstusrId" value="{{ $stampreqLoop->id }}" data="{{ $stampreqLooop->id }}">

推荐阅读