jQuery中的dom追加操作方法(主動/被動、前面/後面、裡面/外面):
- append:主動/後面/裡面
- appendTo:被動/後面/裡面
- prepend:主動/前面/裡面
- prependTo:被動/前面/裡面
- before:主動/前面/外面
- after:主動/後面/外面
- insertBefore:被動/前面/外面
- insertAfter:被動/後面/外面
在jQuery中的迴圈操作:
$.each(obj, function(index, el) {
// 迴圈體
});
obj:需要的迴圈物件
index:表示當前迴圈到元素的索引
el:元素,表示當前迴圈到的元素
非同步檔案上傳流程說明:
- 產生非同步的請求
- 請求得有一個相應的方法(需要返回值,返回內容:圖片的路徑;在此不需要進行資料表的互動)
- 當非同步請求獲取到相應之後需要儲存圖片的地址(但是又沒必要給使用者看地址,可以使用隱藏域的方式進行儲存)
- 當使用者提交表單的時候,順帶提交隱藏域的地址
laravel實現上傳處理方法
在laravel專案中除了在上傳的時候可以使用move和store方法【都是request例項封裝的】之外,還可以使用高階的上傳檔案儲存方法(由storage門面提供的)
Storage門面在使用的時候需要的注意事項:
- 在storage門面中,有一個“磁碟”的概念,“磁碟”一共有三種:本地磁碟,公共磁碟,第三方磁碟;“磁碟”實質上就是一個目錄
- 本地磁碟(local磁碟),這些檔案存放在local磁碟中的檔案是不能被瀏覽器訪問到的,儲存在其中的檔案一般都是專案的php程式碼自身使用!(磁碟位置位於/Storage/app)
- 公共磁碟(public磁碟),儲存在該磁碟的檔案一般是允許瀏覽器進行訪問的。【磁碟位置位於:/Storage/app/public】
- 第三方磁碟:驅動形式的一種,允許開發者將檔案上傳到第三方的伺服器上。
- 磁碟存在一個配置檔案,位置/config/filesystems.php
預設情況下,瀏覽器是無法訪問到public磁碟目錄的,但是其又想讓瀏覽器訪問,所以需要做一個“軟連結的“的操作”
php artisan storage:link
相當於快捷方式
當軟連結建立好之後,Public磁碟中的內容會被同步到/public/storage/下
Storage門面的通用檔案儲存方法:
Storage::disk(磁碟名)->put(檔名,檔案內容);
非同步請求回撥處理
在html程式碼中新增隱藏域
<input type="hidden" name="avatar" value="">
透過回撥將返回的path寫入隱藏域
使用七牛雲端儲存儲存檔案
七牛:一家提供各種網路服務的運營商,其性質類似於阿里雲
做到程式碼與資源分離
原因:
- 在後期維護網站的也比較方便;
- 資源分離之後可以減輕程式碼伺服器的壓力;
- 如何將資源分離和CDN(content delivery network 內容分發網路)配合起來用,對於bat之類的大公司來說1年能夠生下來的成本至少7位數以上;
註冊七牛賬號後建立後期需要的物件儲存例項(不用充錢,每月免費10G空間, 20G的流量)
-
選擇物件儲存
-
新建空間:自己在哪個區域選擇哪個儲存區域
-
下載七牛的程式碼依賴庫
-
composer require zgldh/qiniu-laravel-storage
-
配置filesystems.php:
-
'qiiniu' => [ 'driver' => 'qiniu', 'domains'=> [ 'default' => 'xxxx.com1.z0.glb.clouddn.com', // 你的七牛域名 'https' => '', 'custom' => '' ], 'access_key' => '', // AK 'secret_key' => '', // SK 'bucket' => '', // 磁碟名字 'notify_url' => '', // 持久化處理 'access' => 'public', // 空間訪問控制 ],
-
新增providers陣列:
-
zgldh\QiniuStorage\QiniuFilesystemServiceProvider::class,
-
播放影片可以選用H5的播放器
<video src="movie.ogg" controls="controls">
您的瀏覽器不支援 video 標籤。
</video>
new : HTML5 中的新屬性。
屬性 | 值 | 描述 |
---|---|---|
autoplay | autoplay | 如果出現該屬性,則影片在就緒後馬上播放。 |
controls | controls | 如果出現該屬性,則向使用者顯示控制元件,比如播放按鈕。 |
height | pixels | 設定影片播放器的高度。 |
loop | loop | 如果出現該屬性,則當媒介檔案完成播放後再次開始播放。 |
muted | muted | 規定影片的音訊輸出應該被靜音。 |
poster | URL | 規定影片下載時顯示的影像,或者在使用者點選播放按鈕前顯示的影像。 |
preload | preload | 如果出現該屬性,則影片在頁面載入時進行載入,並預備播放。如果使用 "autoplay",則忽略該屬性。 |
src | url | 要播放的影片的 URL。 |
width | pixels | 設定影片播放器的寬度。 |
原生JS給select新增option選項
var cateList = eval(ajaxResult);
cateField.innerHTML = '';
for(var idx in cateList) {
var option = document.createElement("option");
option.value = cateList[idx].id;
option.innerHTML = cateList[idx].name;
cateField.appendChild(option);
}
給table的tr加上點選事件
$('#content tbody').on('click','tr', function () {
// 這是獲取第一個td文字
var firstTd = $(this).find("td:first").text();
// 這是獲取第二個td的文字
var in_ku_id = $(this).find("td:nth-child(2)").text();
});
ajax渲染table
$('#content tbody').on('click','tr', function () {
// 入庫編號
var in_ku_id = $(this).find("td:nth-child(2)").text();
// 將入庫編號傳給表單
$('#ku_list_id').val(in_ku_id);
$('#count tbody').html("");
$.ajax({
url: "{:url('/admin/stock/stock/kulist')}",
data: {ku_id:in_ku_id},
type: 'post',
dataType: 'json',
success: function (data) {
for (var i = 0; i < data.length; i++) {
tr = '<td>' + data[i].id + '</td>' + '<td>' + data[i].barcode +
'</td>' + '<td>' + data[i].goods_id + '</td>' + '<td>' + data[i]
.supply_name + '</td>' + '<td>' + data[i].standard + '</td>' + '<td>' +
data[i].unit + '</td>' + '<td>' + data[i].num + '</td>' + '<td>' + data[i].price + '</td>' +
'<td>' + data[i].sell_price + '</td>' + '<td>' + data[i].created_at + '</td>';
$("#count").append('<tr class="link">' + tr + '</tr>')
}
}
});
return false;
});
本作品採用《CC 協議》,轉載必須註明作者和本文連結