【问题标题】:passing a value of a clicked button within the same blade - laravel在同一个刀片中传递单击按钮的值 - laravel
【发布时间】:2019-12-29 14:24:34
【问题描述】:

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

@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-&gt;id 传递给&lt;input&gt; 标签以发送到AJAX?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

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

    要修复,请将变量更改为不同的值(数组或循环变量):

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

    我删除了&lt;a&gt; 并一键完成。这样,您可以根据需要在 AJAX 调用中使用 $(this) 访问 id

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

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

    【讨论】:

    • 我将单个 $stampreq 更改为 $stampreq1 ,但现在我正在接收(未定义变量:stampreq1)。隐藏标签是否必须在 @foreach 循环内?
    • 是的,如果你想知道哪个$stampreq被点击了。 Undefined var 的原因很可能是您在输入区域中的 foreach AND 中不匹配。因此,请检查以下内容:1) @foreach($plural as $stampreq) 2) 你的控制器将`$plural` 命名为 $plural,否则你会得到未定义的 var。或者,如果您命名第二个变量,即循环变量,那么您必须在调用 -&gt;id 时匹配输入中的新名称
    • 所以我将一个输入标签放在循环中,另一个通常放在模态HTML中,对吧?
    • 嗯...确实是两种不同的东西。您需要知道 AJAX 调用中 $stampreqLoop 的 ID。在 AJAX 中,您将拥有类似 var id = $(this).data('stampId') 的内容,然后将其发送回您的控制器,以便控制器可以将正确的 $stampreq 发送回您的模式。您将在 AJAX 的模态中拥有 $stampreq 变量,因此您不需要在那里输入。虽然这不是最初的问题(我认为我们已经解决了),但我建议您将输入从 &lt;a&gt; 更改为按钮 - 让我再次编辑 :)
    猜你喜欢
    • 2023-04-02
    • 2022-11-02
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 2016-12-25
    • 2014-08-22
    • 1970-01-01
    相关资源
    最近更新 更多