您的位置:首页 > Web前端 > JQuery

php与jquery开发注意事项

2013-08-24 19:42 323 查看
一、编码问题

jquery默认是utf-8编码的,如果php.ini的default-charset=utf-8就最好了,那么php源码件的以utf-8无BOM编码为宜;若php.ini的default-charset=gbk,那么php源码以ANSI格式编码为宜;

源码编码与php的default-charset不一致会导致中文显示乱码



二、$.post()方法

访方法比$.ajax常用,需要更多的配置可以$.ajax;

传出参数可加入多如myhash:(new Date()).getTime+Math.random()参数,以解决使用缓存的问题

在gbk编码环境中,php接收到的参数若含用中文,还需要用iconv("utf-8","gb2312",para1)解码;前端接收到返回json后,若json中含有中文,则需要在function(data){}中,使用 unescape方法对data的中文解码;

$tmpfile=$additionname."(".date( "Y-m-d",time())." {$_SESSION['LOGIN_USER_ID']}).zip";
$tmpfileutf8=iconv("gb2312","utf-8",$tmpfile);


三、json问题

php后端代码返回的结果可采用echo json_encode(数组对象) 返回json给前端,前端接收后采用$.parseJSON(mydata);解析

$.post('downloadfile.php',
{ myhash:(new Date()).getTime+Math.random(),
cgym:mycgym,
reqtype:reqtype,
findtype:id,
selectrunid:selectrunid
},
function(data){
var mydata=unescape(data);
var resultjson=$.parseJSON(mydata);
if (resultjson.ErrMsg==''){
window.location=resultjson.downfile;
} else {
alert(resultjson.ErrMsg);
return false;
}
},'text');
}

$result=array("ErrMsg"=>"","downfile"=>"/tmp/{$tmpfileutf8}");
if (file_exists($zipfile)) unlink($zipfile);
if(!file_exists($zipfile)){ 		//重新生成文件
$zip = new ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释
if ($zip->open($zipfile, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE)!==TRUE) {
$result["ErrMsg"]="无法打开文件,或者文件创建失";
echo json_encode($result);
die();
}
foreach( $filedata as $val){
$attachfile = $this->attachdir.$val;    //获取原始文件路径
if(file_exists($attachfile)){
$oldname=basename($attachfile);
$splitidx=strpos($oldname,".");
$oldname=substr($oldname,$splitidx+1);
$zip->addFile( $attachfile ,$oldname);//第二个参数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下
}
}
$zip->close();//关闭
}
if(!file_exists($zipfile)){
$result["ErrMsg"]="压缩文件未正确创建失败";
echo json_encode($result);
die();  //即使创建,仍有可能失败。。。。
}
echo json_encode($result);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: