使用laravel和ajax實(shí)現(xiàn)整個(gè)頁(yè)面無刷新的操作方法
1、數(shù)據(jù)庫(kù)文件
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 '外鍵項(xiàng)目id',
name varchar(100) NOT NULL COMMENT '鍵名',
structure enum('string', 'hash', 'list', 'set', 'zset') COMMENT '數(shù)據(jù)結(jié)構(gòu)',
ttl varchar(50) NOT NULL COMMENT '過期時(shí)間',
user varchar(20) NOT NULL COMMENT '使用者',
reason varchar(255) NOT NULL COMMENT '使用原因',
created_time int(11) NOT NULL COMMENT '創(chuàng)建時(shí)間',
isDelete int(2) NOT NULL DEFAULT '0' COMMENT '是否刪除(0=不刪除,1=刪除)'
)ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT='鍵表';
2、首頁(yè)的內(nèi)容
@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" >請(qǐng)選擇城市</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>數(shù)據(jù)結(jié)構(gòu)</th>
<th>過期時(shí)間</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>條數(shù)據(jù)</div>
</div>
</table>
</div>
效果:

3、使用ajax:給選擇框加上change事件,觸發(fā)時(shí),到KeyController下的klist方法,并傳入project_id,在klist方法中進(jìn)行處理,獲取數(shù)據(jù)傳出來,將整個(gè)頁(yè)面的body的內(nèi)容全都改變。
<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的話,就獲取全部數(shù)據(jù),不為0,則獲取外鍵==project_id的key的值,將整個(gè)頁(yè)面都傳出去
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、實(shí)現(xiàn):當(dāng)下拉框改變時(shí),內(nèi)容改變并未刷新

以上這篇使用laravel和ajax實(shí)現(xiàn)整個(gè)頁(yè)面無刷新的操作方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
ThinkPHP中的系統(tǒng)常量和預(yù)定義常量集合
這篇文章主要介紹了ThinkPHP系統(tǒng)常量和預(yù)定義常量,需要的朋友可以參考下2014-07-07
Laravel5.6框架使用CKEditor5相關(guān)配置詳解
這篇文章主要介紹了Laravel5.6框架使用CKEditor5相關(guān)配置,結(jié)合實(shí)例形式詳細(xì)分析了Laravel5.6框架整合CKEditor5編輯器相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-07-07
Yii輸入正確驗(yàn)證碼卻驗(yàn)證失敗的解決方法
這篇文章主要給大家介紹了Yii輸入正確驗(yàn)證碼卻驗(yàn)證失敗的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-06-06
PHP加Nginx實(shí)現(xiàn)動(dòng)態(tài)裁剪圖片方案
這篇文章主要介紹了PHP加Nginx實(shí)現(xiàn)動(dòng)態(tài)裁剪圖片的方案,使用Imagick組件實(shí)現(xiàn),需要的朋友可以參考下2014-03-03
PHP結(jié)合Jquery和ajax實(shí)現(xiàn)瀑布流特效
php+ajax+jquery實(shí)現(xiàn)無限瀑布流布局 寬度是一定的高度不定的瀑布流布局 也可以說是無縫拼圖 當(dāng)瀏覽器滾動(dòng)到底部時(shí)候自動(dòng)加載圖片,非常的實(shí)用,需要的小伙伴可以參考下。2016-01-01
phpMyAdmin自動(dòng)登錄和取消自動(dòng)登錄的配置方法
這篇文章主要介紹了phpMyAdmin自動(dòng)登錄和取消自動(dòng)登錄的配置方法,需要的朋友可以參考下2014-05-05

