zoukankan      html  css  js  c++  java
  • php与jquery开发注意事项

    一、编码问题

          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); 




  • 相关阅读:
    ntohs, ntohl, htons,htonl的比较和详解【转】
    Device Tree 详解【转】
    浅析Linux DeviceTree【转】
    【spring boot】spring boot 拦截器
    【jQuery】jQuery/js 判断字符串是否JSON字符串
    【java】java中的 &= 和 |= 和 ^= 的区别
    zabbix创建触发器、action,发送报警邮件
    html iframe禁用右键
    mysql数据库mysqldump方式备份
    JDK8新特性
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3279696.html
Copyright © 2011-2022 走看看