溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么使用laravel和ajax實(shí)現(xiàn)整個(gè)頁(yè)面無(wú)刷新

發(fā)布時(shí)間:2021-05-18 11:41:21 來(lái)源:億速云 閱讀:187 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)怎么使用laravel和ajax實(shí)現(xiàn)整個(gè)頁(yè)面無(wú)刷新的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

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 '過(guò)期時(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"  id="contain">
  <div >
   <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>過(guò)期時(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 >
    {{ $keys->render() }}
    <div  class="pagi__count"> 共<b>{{ $count }}</b>條數(shù)據(jù)</div>
   </div>
 
  </table>
 </div>

效果:

怎么使用laravel和ajax實(shí)現(xiàn)整個(gè)頁(yè)面無(wú)刷新

3、使用ajax:給選擇框加上change事件,觸發(fā)時(shí),到KeyController下的klist方法,并傳入project_id,在klist方法中進(jìn)行處理,獲取數(shù)據(jù)傳出來(lái),將整個(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è)面無(wú)刷新

Laravel 是什么

Laravel 是一套簡(jiǎn)潔、優(yōu)雅的PHP Web開(kāi)發(fā)框架。它可以讓你從面條一樣雜亂的代碼中解脫出來(lái);它可以幫你構(gòu)建一個(gè)完美的網(wǎng)絡(luò)APP,而且每行代碼都可以簡(jiǎn)潔、富于表達(dá)力。

感謝各位的閱讀!關(guān)于“怎么使用laravel和ajax實(shí)現(xiàn)整個(gè)頁(yè)面無(wú)刷新”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI