工作總結第二天
一 ,jquery form 的使用 ,地址:https://github.com/jquery-form/form
首先明確,form表單中不能巢狀form表單,然後一個頁面可以有多個form表單。
一個簡單示例 : 前提 ,引入 jquery 和 jquery form 兩個 js 檔案 ,可參考 :http://blog.csdn.net/qq_28602957/article/details/53612885
HTML :
<form id="tab2" action="" method="post" enctype="multipart/form-data">
<!-- <input type="file" name="myfile" /><br>
<input type="submit" value="Upload File to Server"> -->
<input type="file" name="myfile" id="upload" class="upfile" onchange="document.getElementById('upfileResult').innerHTML=this.value">
<span id="upfileResult" class="newfileResult"></span>
<input class="upFileBtn" type="button" value="瀏覽" onclick="document.getElementById('upload').click()">
</form>
JS:
<script>
$('#upload').change(function(){
$('#tab2').submit();
});
$(function(){
$('#tab2').ajaxForm({
url : "<?=Yii::$app->urlManager->createUrl('/Message/sms/import'); ?>",
success: function(data) {//成功
alert(data);
},
error:function(err){//失敗
alert("表單提交異常!"+err.msg);
},
// complete: function(xhr) {//完成
// status.html(xhr.responseText);
// }
});
})
</script>
這個例子只演示了檔案的上傳,要知道使用這個外掛不僅僅可以上傳檔案,還有圖片和任何name屬性中的值
2,yii 框架中新建的module會預設使用defaultController 這個控制器,如果想要改變它需要在/config/web.php中指定這個模組的defaultRoute或者在module.php中指定這個defaultRoute屬性也行。
3.yii 框架中使用gii生成modules時最好指定到modules\admin\這樣的具體模組下,而不是使用modules作為一個模組,另外就是有時生成的模組入口檔案可能未生成成功,可刪除掉已生成的檔案再次重新生成一次
4,yii中所有的靜態檔案都使用asstes這個目錄的資源,不同模組應該可以自定義,還未嘗試
5.phpExcel類的使用。可直接讀取xls和xlsx檔案的內容而無需必須轉成csv ,下載地址,https://github.com/PHPOffice/PHPExcel,這個類不僅可讀,而且可生成excel以及生成pdf和html等,參考 http://blog.csdn.net/diandian_520/article/details/7827038。
6,使用str_replace 替換了路徑中的反斜線為斜線 str_replace('\\','/',$file_name); 參考 :mixedstr_replace (mixed$search
,mixed$replace
,mixed$subject
[,int&$count
] )
7,使用了pathinfo來獲取檔案的字尾名 pathinfo($filename)['extension']; 當然獲取方式有很多,比如 strrchr( ' .' ,$filename) ,或者explode(' .',$filename ) 然後end( $arr )即可,當然陣列的操作就多了,比如逆向排序後取出第一個或者array_pop彈出最後一個,或者array_slice( $arr,-1,1)
8,array_filter 的使用,這個函式可以用回撥函式來迴圈處理傳進來的陣列單元的每個值,過濾後的單元為真則進入將要被返回的新陣列,如果沒有回撥函式則字串為真也會進入新陣列,參考:
array array_filter ( array$array
[,
[,
int$flag
= 0 ]] )
依次將 input
陣列中的每個值傳遞到
callback
函式。如果 callback
函式返回 TRUE
,則input
陣列的當前值會被包含在返回的結果陣列中。陣列的鍵名保留不變。
9,除了同2進行取模運算外,使用php 的位運算也能夠做到,那就是讓所有數與1進行按位與 (&),比如:
3 & 1
00000011
00000001
00000001
4 &1
00000100
00000001
00000000
因為1的二進位制滿位時是 00000001,所以任何數字只有最後一位為1時才能有值。
可以得證,所有奇數與1按位與後的結果均為1,所有偶數與1按位與後的結果均為0
10,ajax 用var_dump() 返回時在網路請求裡面看返回結果,不要等success
11, 禁止enter提交表單 :onkeydown="if(event.keyCode==13)return false; 參考 :http://www.jb51.net/article/50006.htm