JQuery_Ajax增删改实例二 (TP5框架之RESTful

2020-04-21  本文已影响0人  zhaoxiaohui520

前端代码

路径:application/restful/view/users/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{$title}</title>
    {css href="__INDEX__/reset.css" /}
    {css href="__INDEXCSS__/bootstrap.min.css" /}
    {css href="__INDEXCSS__/toastr.min.css" /}

    {js href="__INDEXJS__/jquery.min.js" /}
    {js href="__INDEXJS__/bootstrap.min.js" /}
    {js href="__INDEXJS__/toastr.min.js" / }
</head>
<body>
<div class="container">
    <div class="row">
        <div class="col-md-12 bg-primary p20">
            <h1>{$title}</h1>
            <hr>
            <button class="btn btn-default" data-toggle="modal" data-target="#exampleModal">
                添加用户
            </button>
        </div>

        <div class="clearfix"></div>

        <div class="row mt20">
            <div class="col-md-6">
                <table class="table table-hover bg-info">
                    <tr>
                        <th>ID</th>
                        <th>用户名</th>
                        <th class="col-md-6">操作</th>
                    </tr>
                    {volist name="list" key="k" id="v" mod="2"}
                    {eq name="mod" value="0"}
                    <tr>
                        <td>{$v['id']}</td>
                        <td id="tdname">{$v['name']}</td>
                        <td>
                            <button id="{$v['id']}" class="btn btn-xs btn-default read-btn" data-toggle="modal"
                                    data-target="#myModal">查看信息框
                            </button>
                            <button id="{$v['id']}" class="btn btn-xs btn-primary edit-btn" data-toggle="modal"
                                    data-target="#editModal">编辑
                            </button>
                            <button id="{$v['id']}" class="btn btn-xs btn-danger del-btn">删除</button>
                        </td>
                    </tr>
                    {/eq}
                    {/volist}
                </table>
            </div>
            <div class="col-md-6">
                <table class="table table-hover bg-info">
                    <tr>
                        <th>ID</th>
                        <th>用户名</th>
                        <th class="col-md-6">操作</th>
                    </tr>
                    {volist name="list" key="k" id="v" mod="2"}
                    {eq name="mod" value="1"}
                    <tr>
                        <td>{$v['id']}</td>
                        <td id="tdname">{$v['name']}</td>
                        <td>
                            <button id="{$v['id']}" class="btn btn-xs btn-default read-btn" data-toggle="modal"
                                    data-target="#myModal">查看信息框
                            </button>
                            <button id="{$v['id']}" class="btn btn-xs btn-primary edit-btn" data-toggle="modal"
                                    data-target="#editModal">编辑
                            </button>
                            <button id="{$v['id']}" class="btn btn-xs btn-danger del-btn">删除</button>
                        </td>
                    </tr>
                    {/eq}
                    {/volist}
                </table>
            </div>
        </div>
    </div>
</div>

<!-- 查询Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">

            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span>
                </button>
                <h4 class="modal-title" id="myModaltitle"></h4>
            </div>

            <div class="modal-body" id="myModalbody">
                ...
            </div>

            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
            </div>
        </div>
    </div>
</div>

<!--添加模态框-->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
                        aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="exampleModaltitle">用户添加</h4>
            </div>
            <form id="group">
                <div class="modal-body" id="exampleModalbody">
                    <div class="form-group">
                        <label for="recipient-name" class="control-label">姓名:</label>
                        <input type="text" class="form-control" id="names" name="name" value="">
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default  gb-btn" data-dismiss="modal">关闭</button>
                    <button type="button" class="btn btn-primary add-btn">确认添加</button>
                </div>
            </form>
        </div>
    </div>
</div>

<!--修改模态框-->
<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="editModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
                        aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="exampleModaltitle">用户修改</h4>
            </div>
            <input type="hidden" class="form-control" id="eid" name="eid" value="">
            <form id="upGroup">
                <input type="hidden" name="_method" value="PUT" >
                <div class="modal-body" id="exampleModalbody">
                    <div class="form-group">
                        <label for="recipient-name" class="control-label">姓名:</label>
                        <input type="text" class="form-control" id="enames" name="name" value="">
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default gb-btn" data-dismiss="modal">关闭</button>
                    <button type="button" class="btn btn-primary up-btn">确认修改</button>
                </div>
            </form>
        </div>
    </div>
</div>

<script>
    // 设置弹框参数
    toastr.options = {
        closeButton: true,// 是否显示关闭按钮
        progressBar: false,// 实现显示计时条
        timeOut: "2000",  // 自动关闭时间
        positionClass: "toast-top-right" // 提示位置
        // toast-top-full-width 顶端,宽度铺满整个屏幕
        // toast-top-right  顶端右边
    };


    $(function () {
        //查询
        $('.read-btn').click(function () {
            var id = $(this).attr('id'); //获得当前点击的ID
            console.log('当前点击的ID: ' + id);
            readAJAX(id);
        });

        //添加
        $('.add-btn').click(function () {
            var input = $('#group input').val();
            // console.log(input);
            //判断input表单是否为空
            if ($.trim(input) == '') {
                alert('值不能为空');
                return false;
            }
            var arr = $('#group input').serializeArray(); //将获取到数据转换数组
            // console.log(arr);
            saveAJAX(arr);
        });

        //删除
        $('.del-btn').click(function () {
            var id = $(this).attr('id');//获取当前删除的id
            console.log('当前点击ID:' + id);
            if (confirm('您确定要[ 删 除 ]吗?')) {
                var row = $(this).parents('tr');//获得当前行的所有信息
                // console.log(row);
                delAJAX(id, row);
            }

        });

        //编辑
        $('.edit-btn').click(function () {
            var id = $(this).attr('id');
            console.log('当前点击的ID:' + id);
            editAJAX(id);
        });

        //保存编辑
        $('.up-btn').click(function () {
            var input = $('#upGroup input').val();
            // console.log(input);
            //判断input表单是否为空
            if ($.trim(input) == '') {
                alert('值不能为空');
                return false;
            }

            var id = $('#eid').val();
            var earr = $('#upGroup input').serializeArray(); //转换数组
            // console.log(id, earr);
            updAJAX(id, earr)


        });

    });

    //保存编辑
    function updAJAX(id, array) {
        $.ajax({
            type: 'post',
            url: '/users/' + id,
            dataType: 'json',
            data: array,
            success: function (data) {
                console.log(data);
                if (data.status) {
                    toastr.success(data.info);
                    $('.gb-btn').click();
                    setTimeout(function(){
                        window.location.reload();//刷新当前页面.
                    },2000)

                } else {
                    toastr.error(data.info);
                }
            },
            error: function () {
                alert('重复值,请重试');
            }
        });
    }

    //查看编辑信息
    function editAJAX(id) {
        $.ajax({
            type: 'get',
            url: '/users/' + id,
            dataType: 'json',
            success: function (data) {
                console.log(data);
                if (data.status) {
                    $('#eid').val(data.body.id);
                    $('#enames').val(data.body.name);
                } else {
                    $('#enames').val(data.body);
                }
            },
            error: function () {
                alert('失败');
            }
        });
    }

    //删除
    function delAJAX(id, row) {
        $.ajax({
            type: 'delete',
            url: '/users/' + id,
            dataType: 'json',
            success: function (data) {
                console.log(data);
                if (data.status) {
                    toastr.success(data.info);
                    row.remove('tr');
                } else {
                    toastr.error(data.info);
                }
            },
            error: function () {
                alert('失败');
            }
        });
    }

    //添加信息
    function saveAJAX(array) {
        $.ajax({
            type: 'post',
            url: '/users/',
            data: array,
            dataType: 'json',
            success: function (data) {
                console.log(data);
                if (data.status) {
                    toastr.success(data.info);
                    $('.gb-btn').click();
                    setTimeout(function(){
                        window.location.reload();//刷新当前页面.
                    },2000)
                } else {
                    toastr.error(data.info);
                }
            },
            error: function (data) {
                alert('重复添加');

            }
        });
    }

    //查看详情
    function readAJAX(id) {
        $.ajax({
            type: 'get',
            url: '/users/' + id,
            dataType: 'json',
            success: function (data) {
                console.log(data);
                if (data.status) {
                    $('#myModaltitle').html(data.title);
                    $('#myModalbody').html(data.body.name);
                } else {
                    $('#myModaltitle').html(data.title);
                    $('#myModalbody').html(data.body);
                }
            },
            error: function () {
                alert('失败');
            }
        });
    }
</script>
</body>
</html>

定义页面访问路由地址
路径:application/route.php

<?php

use think\Route;
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------

//tp首页
Route::get('/','index/index/index');//前台首页

//资源路由(用户列表)
Route::resource('users','restful/users');

后端php
路径:application/restful/controller/Users.php

<?php

namespace app\restful\controller;

use think\Controller;
use think\Request;
use think\Db;

class Users extends Controller
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()

    {
        $res = Db::table('hc_user')->field(['id', 'name'])->order(['id' => 'DESC'])->select();
//        var_dump($res);die();
        return view('users/index', [
            'title' => '用户列表',
            'list' => $res
        ]);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        $post = $request->post();
//        var_dump($post);die();
        $list = [
            'name' => $post['name']
        ];


//        var_dump($list);

        $res = Db::table('hc_user')->insert($list);

//        var_dump($res);

        if ($res > 0 ){
            $info['status'] = true;
            $info['info'] = '添加成功';
        } else {
            $info['status'] = false;
            $info['info'] = '添加失败,请重试';
        }

        return json($info);
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {

        $res = Db::table('hc_user')->field(['pass','status'],true)->find($id);
//        var_dump($res);die();
        if ($res === null){
            $info['status'] = false;
            $info['title'] = '无此信息';
            $info['body'] = '无此人信息,请重试';
        }else{
            $info['status'] = true;
            $info['title'] = $res['name'];
            $info['body'] = $res;
        }

        return json($info);

    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {




    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
//        var_dump($request);die();
        $post = $request->post();
//        var_dump($post);
//        die();
        $res = Db::table('hc_user')->where(['id'=>$id])->update($post);

        if ($res){
            $info['status'] = true;
            $info['info'] = '修改成功';
        }else{
            $info['status'] = false;
            $info['info'] = '修改失败';
        }

        return json($info);
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        $res = Db::table('hc_user')->delete($id);

        if($res){
            $info['status'] = true;
            $info['info'] = '删除成功';
        }else{
            $info['status'] = false;
            $info['info'] = '删除成功';
        }

        return json($info);
    }
}

上一篇 下一篇

猜你喜欢

热点阅读