zoukankan      html  css  js  c++  java
  • laravel基础课程---12、lavarel的ajax操作2(lavarel的ajax使用总结)

    laravel基础课程---12、lavarel的ajax操作2(lavarel的ajax使用总结)

    一、总结

    一句话总结:

    比较简单:就是js请求ajax,然后控制器获取请求参数,返回数据即可

    1、laravel修改某个板块修改图片中 form的目标地址action如何写?

    路径带参数+路由参数:form action="/admin/pic/{{$data->id}}":这样传过来的路由参数(比如id)在控制器中用一个变量接收就好

    2、lavarel查看页面提交的所有数据?

    Request对象的all()方法

    3、比如修改某个板块操作需要做成无刷修改么?

    不需要,直接跳回列表页面即可

    4、修改板块(板块中带图片)操作需要注意的是什么?

    删除原图操作:原图和新图是否一样,不一样就删除原图

    5、无刷新分页的实现思路及原理?

    数据库实现原理:分页的原理 limit
    思路一:vue双向绑定+ajax(推荐):
    思路二:控制器直接返回分页页面数据
    1、分页的原理 limit
        1  0,3
        2  3,3
        3  6,3

    6、最基本 的分页实现思路?

    控制器:确定分页和页数和每页显示的数据
    视图:ajax请求分页 + 遍历输出分页图标
    控制器返回的数据:分页视图要显示的数据 :和我项目中的一样
    <!-- 分页效果 -->
    <div class="panel-footer">
        <nav style="text-align:center;">
            <ul class="pagination">
                @for($i=1;$i<=$page;$i++)
                
                    <li><a href="javascript:;" onclick="page1(this,{{$i}})">{{$i}}</a></li>
                @endfor
            </ul>
        </nav>
    
    </div>
    // 无刷新的分页
    
    function page(obj,page){
    
        // 发送ajax请求
        var str='<tr><th><input type="checkbox" name="" id=""></th><th>ID</th><th>TITLE</th><th>SORT</th><th>IMG</th><th>操作</th></tr>';
        $.get('/admin/pic',{'page':page},function(data){
            // 处理数据
    
            for(var i=0;i<data.length;i++){
    
                str+='<tr id="tr'+data[i].id+'">';
                str+='<td><input type="checkbox" value="'+data[i].id+'" name="" class="inputs" id=""></td>';
                str+='<td>'+data[i].id+'</td>'
                str+='<td>'+data[i].title+'</td>'
                str+='<td><input type="text" onchange="change(this,'+data[i].id+'" value="'+data[i].sort+'" name="" id=""></td>'
                str+='<td><img width="200px" src="/Uploads/Goods/'+data[i].img+'" alt=""></td>'
                str+='<td><a href="/admin/pic/'+data[i].id+'/edit" class="glyphicon glyphicon-pencil"></a>&nbsp;&nbsp;&nbsp;<a href="javascript:;" onclick="del(this,'+data[i].id+')" class="glyphicon glyphicon-trash"></a></td>';
                str+='</tr>';
            }
    
            // 写入到表格中
    
            $("#table").html(str);
        });
    }
    控制器
    
    // 后台商品管理首页方法
    
    public function index(){
    
        // 计算数据的总条数
    
        $tot=DB::table("pic")->count();
    
        // 每页展示几条数据
        $length=3;
    
        // 计算总页数
    
        $page=ceil($tot/$length);
    
        // 判断地址栏参数是否存在
    
    
        if (isset($_GET['page'])) {
            // 计算分页
    
            $offset=($_GET['page']-1)*$length;
    
            // 进行数据库查询
            $data=DB::select("select * from pic order by sort asc limit $offset,$length");
            // 返回JSON
                // return $data;
    
            // 返回页面
                return view('admin.pic.page')->with('data',$data);
    
    
        }
    
    
        // 从数据库中读取相关数据
    
        $data=DB::select("select * from pic order by sort asc limit 0,$length");
    
        // dd($data);
    
        // 加载用户管理页面
        return view('admin.pic.index')->with('data',$data)->with('page',$page);
    }

    7、做无刷新分页的时候,如果不用vue双向绑定,直接用php来实现,那么更新分页数据会需要非常麻烦复杂的在js中的拼接 html代码,如何解决?

    新弄了一个page页面:直接在控制器中返回这个页面:这样不用拼接复杂的html代码
    直接在控制器中返回一个page页面:在页面中 刷新page数据(是一个page页面):return view('admin.pic.index')->with('data',$data)->with('page',$page);
    控制器
    
    // 后台商品管理首页方法
    
    public function index(){
    
        // 计算数据的总条数
    
        $tot=DB::table("pic")->count();
    
        // 每页展示几条数据
        $length=3;
    
        // 计算总页数
    
        $page=ceil($tot/$length);
    
        // 判断地址栏参数是否存在
    
    
        if (isset($_GET['page'])) {
            // 计算分页
    
            $offset=($_GET['page']-1)*$length;
    
            // 进行数据库查询
            $data=DB::select("select * from pic order by sort asc limit $offset,$length");
            // 返回JSON
                // return $data;
    
            // 返回页面
                return view('admin.pic.page')->with('data',$data);
    
    
        }
    
    
        // 从数据库中读取相关数据
    
        $data=DB::select("select * from pic order by sort asc limit 0,$length");
    
        // dd($data);
    
        // 加载用户管理页面
        return view('admin.pic.index')->with('data',$data)->with('page',$page);
    }
    function page1(obj,page){
    
        // 发送ajax请求
        
        $.get('/admin/pic',{'page':page},function(data1){
            // 处理数据
    
            alert($("#main").html());
            $("#main").html(data1);
    
        });
    }
    page.blade.php

    <
    th><input type="checkbox" name="" id=""></th> <th>ID</th> <th>TITLE</th> <th>SORT</th> <th>IMG</th> <th>操作</th> @foreach($data as $value) <tr id="tr{{$value->id}}"> <td><input type="checkbox" value="{{$value->id}}" name="" class="inputs" id=""></td> <td>{{$value->id}}</td> <td>{{$value->title}}</td> <td><input type="text" onchange="change(this,{{$value->id}})" value="{{$value->sort}}" name="" id=""></td> <td><img width="200px" src="/Uploads/Goods/{{$value->img}}" alt=""></td> <td><a href="/admin/pic/{{$value->id}}/edit" class="glyphicon glyphicon-pencil"></a>&nbsp;&nbsp;&nbsp;<a href="javascript:;" onclick="del(this,{{$value->id}})" class="glyphicon glyphicon-trash"></a></td> </tr> @endforeach

    二、内容在总结中

     
  • 相关阅读:
    Construct Binary Tree from Preorder and Inorder Traversal
    Construct Binary Tree from Inorder and Postorder Traversal
    Maximum Depth of Binary Tree
    Sharepoint 2013 创建TimeJob 自动发送邮件
    IE8 不能够在Sharepoint平台上在线打开Office文档解决方案
    TFS安装与管理
    局域网通过IP查看对方计算机名,通过计算机名查看对方IP以及查看在线所有电脑IP
    JS 隐藏Sharepoint中List Item View页面的某一个字段
    SharePoint Calculated Column Formulas & Functions
    JS 两个一组数组转二维数组
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10852168.html
Copyright © 2011-2022 走看看