使用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中常用编辑器推荐
Jan 02 PHP
DedeCMS dede_channeltype表字段注释
Apr 07 PHP
php新建文件自动编号的思路与实现
Jun 27 PHP
php求两个目录的相对路径示例(php获取相对路径)
Mar 27 PHP
个人写的PHP验证码生成类分享
Aug 21 PHP
推荐10个提供免费PHP脚本下载的网站
Dec 31 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
Aug 12 PHP
php数组指针操作详解
Feb 14 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
Feb 11 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 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
与数据库连接
2006/10/09 PHP
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
js 获取、清空input type=&quot;file&quot;的值(示例代码)
2013/12/24 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
2015/04/03 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
写给小白看的JavaScript异步
2017/11/29 Javascript
Javascript Promise用法详解
2018/05/10 Javascript
vue实现简易的双向数据绑定
2020/12/29 Vue.js
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
详解Python进程间通信之命名管道
2017/08/28 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
python:动态路由的Flask程序代码
2019/11/22 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
文员自我评价怎么写
2013/09/19 职场文书
会计实习自我鉴定
2013/12/04 职场文书
2014年党务公开方案
2014/05/08 职场文书
设备管理实施方案
2014/05/31 职场文书
机关党员公开承诺书
2014/08/30 职场文书
2014年城管工作总结
2014/11/20 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
世界文化遗产导游词
2019/08/07 职场文书
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP