Php 如何从foreach语句生成的结果中获取相应的值

Php 如何从foreach语句生成的结果中获取相应的值,php,jquery,ajax,laravel,Php,Jquery,Ajax,Laravel,我正在创建购物车页面 使用的包装-Crinsane/LaravelShoppingcart 要增加数量,我正在使用Ajax调用, 对于单个产品,我可以更新数量并减少数量,一切都很完美。问题 当我尝试向购物车添加另一个项目并尝试更新其数量时发生 我认为问题在于我如何抓住罗维德。因为我使用foreach并调用它的类,所以我只得到第一个 身份证 我不知道我该如何以不同的方式获取id。我不是粘贴所有的购物车代码,因为它会更长 这是我的密码 刀片: 控制器 路线 当我查看console.log(rowID

我正在创建购物车页面 使用的包装-Crinsane/LaravelShoppingcart

要增加数量,我正在使用Ajax调用,
对于单个产品,我可以更新数量并减少数量,一切都很完美。问题 当我尝试向购物车添加另一个项目并尝试更新其数量时发生

我认为问题在于我如何抓住罗维德。因为我使用foreach并调用它的类,所以我只得到第一个 身份证

我不知道我该如何以不同的方式获取id。我不是粘贴所有的购物车代码,因为它会更长

这是我的密码

刀片:

控制器

路线

当我查看console.log(rowID)时;我只得到第一个产品id。 应该如何获得相应的ID


非常感谢您的帮助

这里是您在客户端可以做的:

function cartLogic(rowID){
    $.ajax({
        url: 'cart/'+ rowID,
        type: 'PATCH',
        data: { 
            "_token": "{{ csrf_token() }}",
            _method: "PATCH"
        },
        success: function(res) {
            console.log(res);
        }
    });
}

$(".qt-plus").click(function() {
    $(this).parent().children(".qt").html(parseInt($(this).parent().children(".qt").html()) + 1);
    // Here you get ID of a cart record
    var rowID = $(this).parent().find('.rowID').val();

    cartLogic(rowID);
});
注意,我从ajax查询中删除了
quantity
。如果需要,可以将其作为第二个参数添加到
cartLogic
。但要小心,有人可以修改js脚本并将
1000000000
值作为数量或
-42
传递。那个么你们会怎么做?)所以,只将购物车记录的id传递给服务器并在服务器上将数量增加1会更安全

在服务器端,您应该使用如下查询更新记录:

UPDATE `table_name` SET quantity = quantity + 1 WHERE rowID = id

在读取模式下使用的
.val()
仅从第一个元素获取值-如文档中明确说明的。如果您想要所有元素的值,那么您必须循环所有元素,并分别获取每个元素的值。感谢回复@misorude。我目前正在重写代码。(您可能也希望从
.qt
元素中单独获取文本内容。
.text()
的行为与
.val()
不同,并将所有元素的文本内容组合在一起-但这可能不是您在这里想要的。)非常感谢,上述解决方案解决了这个问题。在过去的8个小时里,我一直在努力解决这个问题
public function update(Request $request, $id)
    {
        // return $request->all();
        // dd(Cart::content());
        $quantity = $request->quantity;
        Cart::update($id, $quantity); // Will update the quantity

    }
Route::patch('cart/{id}', 'CartController@update')->name('cart.update');
function cartLogic(rowID){
    $.ajax({
        url: 'cart/'+ rowID,
        type: 'PATCH',
        data: { 
            "_token": "{{ csrf_token() }}",
            _method: "PATCH"
        },
        success: function(res) {
            console.log(res);
        }
    });
}

$(".qt-plus").click(function() {
    $(this).parent().children(".qt").html(parseInt($(this).parent().children(".qt").html()) + 1);
    // Here you get ID of a cart record
    var rowID = $(this).parent().find('.rowID').val();

    cartLogic(rowID);
});
UPDATE `table_name` SET quantity = quantity + 1 WHERE rowID = id