当前位置: 首页 > 知识库问答 >
问题:

Laravel:使用Ajax更新数据库。我下一步该怎么做?

齐英韶
2023-03-14

在使用AJAX时,我需要有人指导我建立函数更新数据库。当我单击Accept按钮时,Ajax请求将发送到服务器,服务器将执行字段post_status的更新值。开始时,字段post_status has的值为“pending”,执行查询更新后,该值将更改为“accepted”。我下一步该怎么办?请帮帮我。非常感谢你的帮助。

  • Posts表的数据库:
post_id user_id    title       content      DateTime      post_status
1          1      Title 1     Content 1       Time         pending
2          2      Title 2     Content 2       Time         pending
3          3      Title 3     Content 3       Time         pending
4          4      Title 4     Content 4       Time         pending
5          5      Title 5     Content 5       Time         pending
  • 观点:
<table class="table table-bordered">
    <thead class="thead-inverse">
        <tr>
            <th>Post ID</th>
            <th>User ID</th>
            <th>Name User</th>
            <th>Title</th>
            <th>Content</th>
            <th>Datetime</th>
            <th>Status</th>
            <th>Accept</th>
        </tr>
        </thead>
        <tbody>
            @foreach ($posts as $row)
            <tr id="{{ $row->post_id }}"> 
                <td>{{$row->post_id}}</td>
                <td>{{$row->user_id}}</td>
                <th>{{$row->users->name}}</th>
                <td>{{$row->post_title}}</td>
                <td>{{$row->post_content}}</td>
                <td>{{$row->post_datetime}}</td>
                <td>{{$row->post_status}}</td>      {{-- The status of post that I wanna change the value to "accepted"  --}}
            <td>
                <button class="btn btn-success accept-btn" data-postID="{{$row->post_id}}">Accept</button>
            </td>
            </tr>
            @endforeach
        </tbody>
</table>
  • 代码Javascript:
<script>
    $(document).ready(function () {        
        $('.accept-btn').click(function(){
            var postId = $(this).attr('data-postID');

            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });

            $.ajax({
                type: "POST",
                url: "{{route('posts.list_post_ajax')}}",      
                data: { postId: postId },
                dataType: 'JSON',
                success :function(response) {
                    console.log(response);
                },
            });

        })
    });
</script>
  • 控制器的功能列表\u post\u ajax:
    public function list_post_ajax(Request $request)
    {
        if(request()->ajax()){
            $postId = $request->get('postId');
            return response()->json(['success'=>$postId]);   

            // What's I should do next?
            // Pls help me.
        }


    }

共有1个答案

田志尚
2023-03-14

有很多方法可以做到这一点。这个将按照您的代码工作。使用$myObject-

更改视图

<td id="td{{$row->post_id}}">{{$row->post_status}}</td>

在控制器上

$postId = $request->get('postId');

$post = App\Post::find($postId);

$post->post_status= 'accepted';

$post->save();

return response()->json(['success'=>$postId,'message'=>'accepted']);

关于JS

      $.ajax({
            type: "POST",
            url: "{{route('posts.list_post_ajax')}}",      
            data: { postId: postId },
            dataType: 'JSON',
            success :function(response) {
                console.log(response);
                 $('td'+postId).html(response.message);
            },
        });

编辑:我在控制器上更新我的答案。你应该看看有说服力的文档

 类似资料:
  • 如何使用复选框使用Ajax仅更新表的一列? 我想使用复选框并更新我的列,值将是或。如果选中值为,否则。 是我列的名称 是我的行id 控制器功能 不知道怎么处理这个零件! 我的最新代码: 我的开关按钮未按预期工作,对于值打开,对于值关闭,开关始终处于关闭状态 问题是为"什么是PHP运算符"?"":"打电话来,他们是做什么的?"解释了我必须使用

  • 嘿,伙计们,我正在使用Laravel5.7,我正试图发出一个ajax post请求来更新我的数据库。ajax将基于checkbox on change函数发布。例如,如果我关闭复选框,它将发送一个请求,并将我的状态更新为my表中的。尝试之后,我出现了一个错误。有人注意到我做错了什么吗?抱歉,如果我的代码中有一些错误的代码或语法,因为我对Ajax非常陌生。任何帮助都将不胜感激。 AJAX 路线 控制

  • 全部的 只是想看看用表单中提交的数据更新数据库行的最佳选项是什么。我理解Laravel更新查询生成器,但是我在如何获取表单数据,然后执行该查询方面遇到了困难。相对较新的Laravel:)这是我想出的,只是从我的PHP经验和逻辑: 我曾试图将查询放入一个函数中,然后让表单操作成为函数: 正如我所说,主要问题是试图让命名的表单对象成为更新行的对象。我有两个文本输入字段,分别命名为“body”和“not

  • 我想用AJAX和Laravel5.2框架更新数据库表列。我有一个按钮,当我点击该按钮时,它会将一列从更新为。我还使用sweetAlert插件进行弹出式设计。我找了很多。但我没有找到完美的程序。我试过这样做: 路线: WinnerController: 视图中的脚本: 刀片: 刀片前端: 这是更新栏,但更新后它重定向了另一个页面,它只显示弹出它不需要提交弹出的确认按钮。有办法这么做吗?有人能回答我下

  • 问题描述 我输入sqlite3 -version,显示版本变化,我安装项目依赖sqlite-devel 和python-devel没有更新,Python -V版本未变 问题出现的环境背景及自己尝试过哪些方法 我是初学者,在学习过程中怕版本不对,于是我就选择文章指定版本进行安装,尝试过的办法就是在网上找安装项目依赖命令,找了几个试都未成功 相关代码 粘贴代码文本(请勿用截图) ··· yum ins

  • 我为我的应用程序构建了一个应用程序接口,它位于一个带有请求限制的网关后面。在我构建应用程序接口之前,我的应用程序会自行协调请求,因此可以在毫秒内启动许多请求,以便在用于获取数据的9个提供程序中同步应用程序的数据。现在,这个逻辑已经被推到我的应用程序接口适配器层。我需要考虑如何控制每秒请求的数量,以避免达到我自己的速率限制。提高速率限制不是一个选项,因为这需要网关提供程序的层冲击,我不愿意为此付费。