标签存档: 函数 - 第2页

页面中一键向后台多张表插入数据

一、获取页面中所有form的文本值并打包(下文省略部分代码):

var forms = $(".warpper1").find("form");
var arr = new Object();
for(var i=0;i<forms.length;i++){
	var id = forms.eq(i).attr("id");
	arr[id] = $("#"+id).serializeArray();
}
console.table(arr);
$.ajax({
        url:'/Home/Members/perfect_now',                      
	data:arr,
	dataType:'html',
	type:'post',
        success:function(data){
            	console.log(data);
        }
});

二、将后台获取的$_POST转化成易于插入数据库表的数据结构:

//print_r($_POST);
foreach($_POST as $k=>$v){
    $num = 0;
    foreach($v as $key=>$val){
	if($val['name'] == $v[0]['name'] && $key != 0){
	    ++$num;
	}
										
	$_POST[$k][$num][$val['name']] = $val['value'];						

	if($key != $num){unset($_POST[$k][$key]);}	
	unset($_POST[$k][$num]['name']);
	unset($_POST[$k][$num]['value']);																	
    }
}
//print_r($_POST);exit;

上传图预览

HTML部分

<img id="pscover" src="__PUBLIC__/Home/images/z_70.jpg" alt="" />
<input type="file" name="scover" id="scover" />
<img id="pqr" src="__PUBLIC__/Home/images/z_70.jpg" alt="" />
<input type="file" name="qr" id="qr"/>

JS部分(注意引入jQ)

window.onload = function(){
	var arr = new Array();
	arr["img[id='pscover']"] = "input[name='scover']";
	arr["img[id='pqr']"] = "input[name='qr']";
	for(var i in arr){
		void function(i){
			$(arr[i]).on("change",function(){
		 		var pic = this.files[0];
		 		pic_preview(pic,i);
			})		
		}(i)	 	
	}
	function pic_preview(pic,obj){
		var f = new FileReader();
		f.readAsDataURL(pic);
		f.onload = function (e){
			$(obj).attr("src",this.result).show();
		}
	}	
}

PHP的use语句

PHP 7 可以使用一个 use 从同一个 namespace 中导入类、函数和常量:

// PHP 7 之前版本需要使用多次 use 
use some\namespace\ClassA; 
use some\namespace\ClassB; 
use some\namespace\ClassC as C; 

use function some\namespace\fn_a; 
use function some\namespace\fn_b; 
use function some\namespace\fn_c; 

use const some\namespace\ConstA; 
use const some\namespace\ConstB; 
use const some\namespace\ConstC; 

// PHP 7+ 之后版本可以使用一个 use 导入同一个 namespace 的类 
use some\namespace\{ClassA, ClassB, ClassC as C}; 
use function some\namespace\{fn_a, fn_b, fn_c}; 
use const some\namespace\{ConstA, ConstB, ConstC};

call_user_func用法

在PHP 4, PHP 5, PHP 7中,call_user_func — 把第一个参数作为回调函数调用。

mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )

第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数,传入call_user_func()的参数不能为引用传递。

Example #1 call_user_func() 的参考例子

<?php
error_reporting(E_ALL);
function increment(&$var)
{
    $var++;
}
$a = 0;
call_user_func('increment', $a);
echo $a."\n";
//You can use this instead before PHP 5.3
call_user_func_array('increment', array(&$a));
echo $a."\n";
?>

以上例程会输出:

0
1

jquery遍历数组和对象

/*
jquery中的each是用来遍历数组的而map则是用来映射生成一个新数组的
each方法中的return false相当于循环中的break,return true相当于循环中的continue
map方法中的return 相当于个新数组映射成的一个元素,没有return就相当于新的数组中忽略掉了这个元素
*/

/*遍历数组*/
var arr=["a","b","c"];
console.log("js遍历数组1");
for(var i=0;i<arr.length;i++){
	console.log(i+"--"+arr[i]);
}
console.log("js遍历数组2");
for(var i in arr){
	console.log(i+"--"+arr[i]);
}
console.log("jquery.each遍历数组");
$.each(arr,function(i,item){
	console.log(i+"--"+item);
});
console.log("jquery.each遍历数组2");
$(arr).each(function(i,item){
	console.log(i+"--"+item);
});
console.log("jquery.map遍历数组1,注意这里回调函数中第一个参数是元素,第二个是索引");
$.map(arr,function(i,item){
	console.log(i+"--"+item);
});
console.log("jqery.map遍历数组2");
console.log($(arr).map(function(i,item){
	console.log(i+"--"+item);
}).length);

/*遍历对象*/
var obj={name:"xiaoming",age:20,addr:"tianminglu"};
console.log("js遍历对象")
for(var i in obj){
	console.log(i+"--"+obj[i]);
}

console.log("jquery.each遍历对象1");
$.each(obj,function(i,item){
	console.log(i+"--"+item);
});
console.log("jquery.each遍历对象2")
$(obj).each(function(i,item){
	console.log(i+"--"+item);
});
console.log("jquery.map遍历对象1,注意这里回调函数中第一个参数是元素,第二个是索引");

$.map(obj,function(i,item){
	console.log(i+"--"+item);
});	
console.log("jquery.map遍历对象2");
$(obj).map(function(i,item){
	console.log(i+"--"+item);
});