使用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 相关文章推荐
一个odbc连mssql分页的类
Oct 09 PHP
php从右向左/从左向右截取字符串的实现方法
Nov 28 PHP
PHP中Header使用的HTTP协议及常用方法小结
Nov 04 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
非常全面的php日期时间运算汇总
Nov 04 PHP
Thinkphp框架开发移动端接口(2)
Aug 18 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
Oct 10 PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 PHP
PHP封装的验证码工具类定义与用法示例
Aug 22 PHP
PHP连接sftp并下载文件的方法教程
Aug 26 PHP
YII2框架中添加自定义模块的方法实例分析
Mar 18 PHP
如何用PHP实现多线程编程
May 26 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和MySql中计算时间差的方法
2011/04/22 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
基于php设计模式中单例模式的应用分析
2013/05/15 PHP
PHP自动生成表单代码分享
2015/06/19 PHP
PHP使用PHPexcel导入导出数据的方法
2015/11/14 PHP
jQuery 定时局部刷新(setInterval)
2010/11/19 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
2011/03/10 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
html5+canvas实现支持触屏的签名插件教程
2017/05/08 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
js验证身份证号码记录的方法
2019/04/26 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
浅析Vue 中的 render 函数
2020/02/28 Javascript
JavaScript仿京东轮播图效果
2021/02/25 Javascript
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
Python实现自动装机功能案例分析
2020/10/22 Python
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
RetroStage德国:复古服装
2019/02/03 全球购物
与UNIX有关的几个名词
2015/09/17 面试题
班组长安全工作职责
2014/07/15 职场文书
实习证明格式范文
2014/10/14 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL