使用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 session 错误
May 21 PHP
PHPLog php 程序调试追踪工具
Sep 09 PHP
写php分页时出现的Fatal error的解决方法
Apr 18 PHP
php stream_get_meta_data返回值
Sep 29 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
Nov 14 PHP
改写ThinkPHP的U方法使其路由下分页正常
Jul 02 PHP
PHP微信开发用Cache 解决数据缓存
Jul 11 PHP
PHP与以太坊交互详解
Aug 24 PHP
laravel5实现微信第三方登录功能
Dec 06 PHP
PHP基础之输出缓冲区基本概念、原理分析
Jun 19 PHP
laravel框架使用极光推送消息操作示例
Feb 15 PHP
PHP如何使用array_unshift()在数组开头插入元素
Sep 01 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
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
一棵php的类树(支持无限分类)
2006/10/09 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
PHP生成静态HTML页面最简单方法示例
2015/04/09 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
php+js实现的无刷新下载文件功能示例
2019/08/23 PHP
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
搭建vue开发环境
2018/07/19 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
python支持断点续传的多线程下载示例
2014/01/16 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python内建数据结构详解
2016/02/03 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
通过cmd进入python的步骤
2020/06/16 Python
详解Open Folder as PyCharm Project怎么添加的方法
2020/12/29 Python
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
德国网上药房:Apotal
2017/04/04 全球购物
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
大学生学习新党章思想汇报
2014/10/25 职场文书
场地使用证明模板
2014/10/25 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
写一个Python脚本自动爬取Bilibili小视频
2021/04/24 Python
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript