You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel如何将AJAX返回数据传入Blade用foreach遍历更新自行车库存

解决方案

1. 视图代码修改

你当前视图中所有分类的可用数量标签都用了重复的id="numberqty",HTML中id属性必须全局唯一,所以首先要给每个分类的数量标签加上唯一标识,同时不建议在Blade视图中直接写SQL查询,这部分逻辑可以迁移到后端控制器首次加载页面时处理:

@foreach ($category as $cat)
  <div class="col pb-5 m-1">
      <div class="card cat m-auto position-relative " id="cat{{$cat->id}}" > 
          <!-- 给数量标签的id加上分类id,保证唯一 -->
          <p class="m-3 numberqty" id="numberqty{{$cat->id}}" style="font-weight: bold;color:#ce2e30;text-shadow: 2px 5px 3px rgba(150, 150, 150, 0.92);"></p> 
          <!-- 其余原有代码保持不变 -->
          ...
      </div>
  </div>
@endforeach

2. AJAX请求回调修改

后端返回的qty是分类ID为键、可用数量为值的对象,直接遍历这个对象,批量更新对应分类的数量即可:

$.ajax({
    "url": "bookingCheck",
    "data": {
        "start": startCorrect,
        "end":endCorrect
    },
    "method": "GET",
    success: function (response) {
        let qty = response.qty;
        // 遍历返回的库存对象
        for (let catId in qty) {
            // 找到对应分类的数量标签,更新值
            $(`#numberqty${catId}`).text(`x${qty[catId]}`);
            // 可额外加库存为0时的禁用逻辑
            if(qty[catId] == 0) {
                $(`#cat${catId}`).addClass('disabled');
                $(`#quantity${catId}`).attr('disabled', true);
            } else {
                $(`#cat${catId}`).removeClass('disabled');
                $(`#quantity${catId}`).attr('disabled', false);
            }
        }
    }
});

3. 控制器逻辑优化(可选)

你当前的库存查询逻辑存在统计误差:

  • 原whereRaw条件只判断了起始日期是否在订单区间内,没有覆盖两个时间段交叉的所有情况,建议替换为判断时间段重叠的通用条件:
    $contractdate = DB::table('contracts')
      ->where(function($query) use ($date1, $date2) {
          $query->whereBetween('data_inizio', [$date1, $date2])
                ->orWhereBetween('data_fine', [$date1, $date2])
                ->orWhere(function($q) use ($date1, $date2) {
                    $q->where('data_inizio', '<=', $date1)
                      ->where('data_fine', '>=', $date2);
                });
      })->get();
    
  • 原循环中只取了最后一个订单的ID统计已租车辆,会漏掉同时间段其他订单的已租车辆,建议统计所有重叠订单的已租车辆ID,再按分类统计可用库存。

内容的提问来源于stack exchange,提问作者alessio scionti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:27:04