使用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实现rc4加密算法代码
Apr 25 PHP
php计算十二星座的函数代码
Aug 21 PHP
php添加文章时生成静态HTML文章的实现代码
Feb 17 PHP
单点登录 Ucenter示例分析
Oct 29 PHP
PHP获取当前所在目录位置的方法
Nov 26 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
php使用memcoder将视频转成mp4格式的方法
Mar 12 PHP
PHP版本常用的排序算法汇总
Dec 20 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
May 16 PHP
php断点续传之文件分割合并详解
Dec 13 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 PHP
PHP简单实现正则匹配省市区的方法
Apr 13 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
php设计模式 Observer(观察者模式)
2011/06/26 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
prototype Element学习笔记(篇二)
2008/10/26 Javascript
jquery中:input和input的区别分析
2011/07/13 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
jquery 实现上下滚动效果示例代码
2013/08/09 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
2017/08/26 jQuery
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
Python在线运行代码助手
2016/07/15 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
pycharm 安装JPype的教程
2019/08/08 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
Python 可变类型和不可变类型及引用过程解析
2019/09/27 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
纯css3实现照片墙效果
2014/12/26 HTML / CSS
详解canvas.toDataURL()报错的解决方案全都在这了
2020/03/31 HTML / CSS
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
yy结婚证婚词
2014/01/10 职场文书
环保倡议书50字
2014/05/15 职场文书
大学生考试作弊检讨书
2014/09/21 职场文书
端午节活动总结报告
2015/02/11 职场文书
工商局个人工作总结
2015/03/03 职场文书
学者《孟子》名人名言
2019/08/09 职场文书
创业计划书之美容店
2019/09/16 职场文书