未定义的偏移量:-1

Posted

技术标签:

【中文标题】未定义的偏移量:-1【英文标题】:Undefined offset: -1 【发布时间】:2022-01-02 04:01:17 【问题描述】:

当我尝试获取动态输入标记的值并执行 jquery 函数时,我不仅没有得到输入的数字字符串值,而且一直得到一个

Undefined offset: -1 error in Laravel

这里是有问题的代码:

foreach ($rates as $rate) 


echo "\n";


// This would be the index of the rate selected by the user
$selected_rate_index = count($rates) - 1;

// After the user has selected a rate, use the corresponding object_id
$selected_rate = $rates[$selected_rate_index];
$selected_rate_object_id = $selected_rate['object_id'];

这是我在 laravel 刀片中的 foreach 循环:

 @foreach ($rates as $key => $rate)

     $loop->index 

    @if ($loop->first)
        <tr>
            <td>
                <img src=" $rate->provider_image_75 " >
          $rate->provider  ( $rate->duration_terms )
            </td>
            <td >
                <input type="radio" class="pull-right rate-value" name="rate" value=" $rate->object_id ">
            $ $rate->amount  <span> <button type="submit" class="yena-btn btn yena-btn_lg btn-danger"> Add This Rate </button> </span>
            </td>
        </tr>

    @elseif ($loop->iteration == 2)

        <tr>
            <td>
                <img src=" $rate->provider_image_75 " >
                 $rate->provider  ( $rate->duration_terms )
            </td>
            <td >
                <input type="radio" class="pull-right rate-value" name="rate" value=" $rate->object_id ">
                $ $rate->amount  <span> <button type="submit" class="yena-btn btn yena-btn_lg btn-danger"> Add This Rate </button> </span>
            </td>
        </tr>

    @elseif($loop->last)

        <tr>
            <td>
                <img src=" $rate->provider_image_75 " >
                 $rate->provider  ( $rate->duration_terms )
            </td>
            <td >
                <input type="radio" class="pull-right rate-value" name="rate" value=" $rate->object_id ">
                $ $rate->amount  <span> <button type="submit" class="yena-btn btn yena-btn_lg btn-danger"> Add This Rate </button> </span>
            </td>
        </tr>
    
    @endif
@endforeach

最后,这是我的 jquery 函数代码

<script type="text/javascript">
$("button").click(function()
    var val = $("input[name='rate']:checked").val();
    alert(val);
);
</script>

有人知道是什么触发了未定义的错误以及为什么我无法获得输入的实际数字字符串值吗?输入标签的警报值是这样的

14b35c21512c4f1b9a04e9efec1d7429

当它应该读取类似的运费时

$8.73

【问题讨论】:

如果$rates 为空怎么办?那么count($rates) 为0,因此count($rates) - 1 为-1,您在下一行访问$rates[-1] 通过模具转储,我可以验证费率确实是空的。不确定我是否遵循您的解决方案。当我尝试将其调整为 [-1] 时,它会触发相同的错误。不知道如何修复它,考虑到我的刀片文件中确实显示了费率,但是当我尝试提交它时,它会引发错误。 这不是一个解决方案-我只是指出了为什么会出现此错误,因为您询问了为什么会收到 Undefined offset: -1 而不是为什么您的费率是空数组,所以我认为您没有到那里去。 此时我不知道为什么数组是空的。 【参考方案1】:

您已将对象 ID 添加为单选按钮的值,该值必须是警报中显示的字母数字值。

您可以在单选按钮的数据属性中添加金额,如下所示。

<input type="radio" class="pull-right rate-value" name="rate" value=" $rate->object_id " data-amount=" $rate->amount ">

然后使用下面的 jQuery 代码来检索金额。

<script type="text/javascript">
   $("button").click(function()
       var val = $("input[name='rate']:checked").data('amount');
       alert(val);
   );
</script>

【讨论】:

感谢您的建议,这部分代码现在可以正常工作,但我仍然收到空费率错误。

以上是关于未定义的偏移量:-1的主要内容,如果未能解决你的问题,请参考以下文章

未定义的偏移量:1 laravel

简单函数()中的php未定义偏移量

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP