一 ,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" οnchange="document.getElementById('upfileResult').innerHTML=this.value">
<span id="upfileResult" class="newfileResult"></span>
<input class="upFileBtn" type="button" value="浏览" οnclick="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 的使用,这个函数可以用回调函数来循环处理传进来的数组单元的每个值,过滤后的单元为真则进入将要被返回的新数组,如果没有回调函数则字符串为真也会进入新数组,参考:
依次将 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提交表单 :οnkeydοwn="if(event.keyCode==13)return false; 参考 :http://www.jb51.net/article/50006.htm