使用laravel和ajax实现整个页面无刷新的操作方法


Posted in PHP onOctober 03, 2019

1、数据库文件

CREATE TABLE IF NOT EXISTS mr_key
(
id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '键id',
project_id int(11) NOT NULL COMMENT '外键项目id',
name varchar(100) NOT NULL COMMENT '键名',
structure enum('string', 'hash', 'list', 'set', 'zset') COMMENT '数据结构',
ttl varchar(50) NOT NULL COMMENT '过期时间',
user varchar(20) NOT NULL COMMENT '使用者',
reason varchar(255) NOT NULL COMMENT '使用原因',
created_time int(11) NOT NULL COMMENT '创建时间',
isDelete int(2) NOT NULL DEFAULT '0' COMMENT '是否删除(0=不删除,1=删除)'
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT='键表';

2、首页的内容

@include('layout.nav')
 @include('layout.slide')
 
 <div class="contain" style="width: 84%;" id="contain">
  <div style="width:30%;margin-bottom:20px;">
   <select class="form-control" id="project">
    <option value="0" >请选择城市</option>
    @foreach ($projects as $project)
     <option value="{{ $project->id }}" @if("{{ $project->id }}" == "{{ $project_id }}")selected="selected"@endif >{{ $project->name }}</option>
    @endforeach
   </select>
  </div>
  <table class="table table-hover">
   <thead>
   <tr>
    <th>id</th>
    <th>键名</th>
    <th>数据结构</th>
    <th>过期时间</th>
    <th>使用者</th>
    <th>使用原因</th>
    <th>操作</th>
   </tr>
   </thead>
   <tbody>
   @foreach ($keys as $key)
    <tr>
     <td>{{ $key->id }}</td>
     <td>{{ $key->name }}</td>
     <td>{{ $key->structure }}</td>
     <td>{{ date("Y-m-d H:i:s", ($key->ttl + $key->created_time)) }}</td>
     <td>{{ $key->user }}</td>
     <td>{{ $key->reason }}</td>
     <td>修改 删除</td>
    </tr>
   @endforeach
   </tbody>
   <div style="position:absolute;top:450px;right:120px;">
    {{ $keys->render() }}
    <div style="float:right;letter-spacing: 2px;margin-left:10px;" class="pagi__count"> 共<b>{{ $count }}</b>条数据</div>
   </div>
 
  </table>
 </div>

效果:

使用laravel和ajax实现整个页面无刷新的操作方法

3、使用ajax:给选择框加上change事件,触发时,到KeyController下的klist方法,并传入project_id,在klist方法中进行处理,获取数据传出来,将整个页面的body的内容全都改变。

<script type="text/javascript">
  $('#project').change(function() {
   $.post("{{ url('key/klist') }}/"+$('#project').val(),  // 路由为Route::any('/key/klist/{project_id}')
    {'_token': '{{ csrf_token() }}'}, function(data) {
    $('#body').html(data);
    });
  });
 </script>

4、klist的方法:判断传入的project_id为0的话,就获取全部数据,不为0,则获取外键==project_id的key的值,将整个页面都传出去

public function klist($project_id)
  {
   if($project_id == 0) {
    $projects = Project::all();
    $keys = Key::orderBy('created_time', 'desc')->paginate(8);
    $count = Key::count();
    $project_id = 0;
    return view('key.index', compact('project_id', 'projects','keys', 'count'));
   }
   $projects = Project::all();
   $keys = Project::find($project_id)->key()->paginate(8);
   $count = Project::find($project_id)->key->count();
   return view('key.index', compact('project_id' ,'projects', 'keys', 'count'));
  }

5、实现:当下拉框改变时,内容改变并未刷新

使用laravel和ajax实现整个页面无刷新的操作方法

以上这篇使用laravel和ajax实现整个页面无刷新的操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 PHP
PHP漏洞全解(详细介绍)
Nov 13 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
Jun 06 PHP
深入解析PHP的引用计数机制
Jun 14 PHP
解析mysql left( right ) join使用on与where筛选的差异
Jun 18 PHP
ThinkPHP模板比较标签用法详解
Jun 30 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
使用Thinkphp框架开发移动端接口
Aug 05 PHP
PHP中如何防止外部恶意提交调用ajax接口
Apr 11 PHP
php通过执行CutyCapt命令实现网页截图的方法
Sep 30 PHP
PHP 验证身份证是否合法的函数
Feb 09 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
Jun 28 PHP
laravel 实现登陆后返回登陆前的页面方法
Oct 03 #PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
Oct 03 #PHP
基于laravel-admin 后台 列表标签背景的使用方法
Oct 03 #PHP
浅谈laravel-admin的sortable和orderby使用问题
Oct 03 #PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 #PHP
laravel-admin select框默认选中的方法
Oct 03 #PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
Oct 03 #PHP
You might like
PHP CURL 内存泄露问题解决方法
2015/02/12 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
2011/01/06 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
使用js判断TextBox控件值改变然后出发事件
2014/03/07 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
2017/01/22 Javascript
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
Python查看多台服务器进程的脚本分享
2014/06/11 Python
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
python遍历小写英文字母的方法
2019/01/02 Python
详解Django配置优化方法
2019/11/18 Python
django修改models重建数据库的操作
2020/03/31 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
希尔顿酒店官方网站:Hilton Hotels
2017/06/01 全球购物
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
协议书与合同的区别
2014/04/18 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/09/30 职场文书
车辆年检委托书范本
2014/10/14 职场文书
红白喜事主持词
2015/07/06 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书