使用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+mysql写的简单留言本实例代码
Jul 25 PHP
php class中public,private,protected的区别以及实例分析
Jun 18 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
php中Socket创建与监听实现方法
Jan 05 PHP
php基于Snoopy解析网页html的方法
Jul 09 PHP
Laravel路由设定和子路由设定实例分析
Mar 30 PHP
PHP微信PC二维码登陆的实现思路
Jul 13 PHP
PHP给源代码加密的几种方法汇总(推荐)
Feb 06 PHP
Mac系统下安装PHP Xdebug
Mar 30 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
Feb 15 PHP
PHP生成图表pChart的示例解析
Jul 31 PHP
PHP使用Redis队列执行定时任务实例讲解
Mar 24 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
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
PHP的可变变量名的使用方法分享
2012/02/05 PHP
PHP接收App端发送文件流的方法
2016/09/23 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
2016/11/21 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
2017/05/23 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
python实现基于两张图片生成圆角图标效果的方法
2015/03/26 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
Python进阶:生成器 懒人版本的迭代器详解
2019/06/29 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
Python colormap库的安装和使用详情
2020/10/06 Python
如何用Python徒手写线性回归
2021/01/25 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
社区十八大感言
2014/01/19 职场文书
机器人总动员观后感
2015/06/09 职场文书
高中物理教学反思
2016/02/19 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书
初中运动会闭幕词范本3篇
2019/12/09 职场文书
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技