使用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初学者头疼问题总结
Oct 09 PHP
php中处理模拟rewrite 效果
Dec 09 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
Mar 02 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
php判断两个浮点数是否相等的方法
Mar 14 PHP
Laravel 5框架学习之Blade 简介
Apr 08 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
PHP按指定键值对二维数组进行排序的方法
Dec 22 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
phpinfo的知识点总结
Oct 10 PHP
Yii框架Session与Cookie使用方法示例
Oct 14 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
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
2014/01/09 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
微信小程序 开发MAP(地图)实例详解
2017/06/27 Javascript
react高阶组件经典应用之权限控制详解
2017/09/07 Javascript
浅谈Angularjs中不同类型的双向数据绑定
2018/07/16 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
Pycharm学习教程(2) 代码风格
2017/05/02 Python
详解通过API管理或定制开发ECS实例
2018/09/30 Python
树莓派3 搭建 django 服务器的实例
2019/08/29 Python
浅析python redis的连接及相关操作
2019/11/07 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
Python 忽略文件名编码的方法
2020/08/01 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
台湾租车首选品牌:IWS艾维士租车
2019/05/03 全球购物
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
精通CAD能手自荐书
2014/01/31 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
暑期学习心得体会
2014/09/02 职场文书
法制演讲稿
2014/09/10 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
交通事故被告答辩状
2015/05/22 职场文书
六年级作文之家庭作文
2019/12/12 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
mysql如何能有效防止删库跑路
2021/10/05 MySQL