首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel: JavaScript (状态更新问题)

Laravel: JavaScript (状态更新问题)
EN

Stack Overflow用户
提问于 2021-03-22 09:55:00
回答 1查看 66关注 0票数 1

我对更新状态有一些问题。一切正常工作,状态也存储在数据库中,但状态图标没有相应更改。当我刷新页面时,状态图标返回到前面的位置,但是在数据库中状态保持不变。实际上status==0的位置没有保存。在这里输入图像描述

banner.blade.php

代码语言:javascript
复制
 @foreach ($banner as $banners)
   @if($banners->status==1)
       <a class="updateBannerStatus" id="banners-{{$banners->id}}" banners_id="{{$banners->id}}" href="javascript:void(0)"><i class="fas fa-toggle-on" aria-hidden='true' status="Active"></i></a>
   @else
       <a class="updateBannerStatus" id="banners-{{$banners->id}}" banners_id="{{$banners->id}}" href="javascript:void(0)"><i class="fas fa-toggle-on" aria-hidden='true' status="Inactive"></i></a>
   @endif
 @endforeach

JS脚本

代码语言:javascript
复制
$(document).on("click", ".updateBannerStatus", function () {
    var status = $(this).children("i").attr("status");
    var banners_id = $(this).attr("banners_id");

    $.ajax({
        type: 'post',
        url: '/admin/update-banner-status',
        data: { status: status, banners_id: banners_id },
        success: function (resp) {
            // alert(resp['status']);
            // alert(resp['section_id']);
            if (resp["status"] == 0) {
                $("#banners-" + banners_id).html("<i class='fas fa-toggle-off' aria-hidden='true' status='Inactive'></i>");
            } else if (resp["status"] == 1) {
                $("#banners-" + banners_id).html("<i class='fas fa-toggle-on' aria-hidden='true' status='Active'></i>");
            }
        }, error: function () {
            alert("Error");
        }
    });
});

BannerController

代码语言:javascript
复制
 public function updateBannerStatus(Request $request)
{
    if ($request->ajax()) {
        $data = $request->all();
        // echo "<pre>";
        // print_r($data);
        // die;
        if ($data['status'] == "Active") {
            $status = 0;
        } else {
            $status = 1;
        }
        Banner::where('id', $data['banners_id'])->update(['status' => $status]); // save the new status
        return response()->json(['status' => $status, 'banners_id' => $data['banners_id']]);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-22 10:00:21

在banner.blade.php中,在不活动的情况下使用类fas fa-toggle-off

代码语言:javascript
复制
@foreach ($banner as $banners)
   @if($banners->status==1)
       <a class="updateBannerStatus" id="banners-{{$banners->id}}" banners_id="{{$banners->id}}" href="javascript:void(0)"><i class="fas fa-toggle-on" aria-hidden='true' status="Active"></i></a>
   @else
       <a class="updateBannerStatus" id="banners-{{$banners->id}}" banners_id="{{$banners->id}}" href="javascript:void(0)"><i class="fas fa-toggle-off" aria-hidden='true' status="Inactive"></i></a>
   @endif
 @endforeach
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66743756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档