最近几个关于js的笔记
by joe
at 2010-10-14 15:17:11
original http://xiebiji.com/2010/10/note_js/
第一,重温一下数据的json传输手法,最简单的php json转js对象方法:
//php的array('a'=>1,b=>'2')转换输出"{a:1,b:2}"的json字符,以下方法转为js对象 eval('var result = '+returnData+';');//等同于:var result={a:1,b:2} //然后可以通过以下方法遍历js对象 for(var v in result){ /*这是递归alert出属性值*/ alert(result[v]); }
第二,研究了一下swfupload(官方下载)这个swf+js的上传组件:
先明确一下原理:
实际上整个原理很简单,单一过程:选择一个文件,然后上传,然后通过响应handle.js里面定义的事件来后续操作。对于多个文件的上传实际上就是重复这个单一过程,handle.js里面定义的每个响应事件都是针对一个文件的上传过程。
再说一下跟php的交互:
a.js端操作,在SWFUload对象初始化时,可以指定给后台php传递的参数,留意注释部分
var settings = { flash_url : "swfupload/swfupload.swf", flash9_url : "swfupload/swfupload_fp9.swf", upload_url: "<?=url('Front','Upload')?>", file_post_name : "postFile",//把上传的文件对象传递给php,在php中将以$_FILES['postFile']接收这个对象 post_params: {"PHPSESSID" : "<?php echo session_id(); ?>"},//可额外给php传递参数,这里用的是post的方式,因此php端可以用$_POST['PHPSESSID']来接收 file_size_limit : "100 MB", file_types : "*.jpg;*.png;*.gif", file_types_description : "All Files", file_upload_limit : 100, file_queue_limit : 0, custom_settings : { progressTarget : "fsUploadProgress", cancelButtonId : "btnCancel", uploadButtonId : "btnUpload", }, debug: true, auto_upload:false, // Button settings button_image_url: "img/bg_btn_upload.png", button_width: "93", button_height: "35", button_placeholder_id: "spanButtonPlaceHolder", button_text: '', button_text_style: "", // The event handler functions are defined in handlers.js swfupload_preload_handler : preLoad, swfupload_load_failed_handler : loadFailed, file_queued_handler : fileQueued, file_queue_error_handler : fileQueueError, file_dialog_complete_handler : fileDialogComplete, upload_start_handler : uploadStart, upload_progress_handler : uploadProgress, upload_error_handler : uploadError, upload_success_handler : uploadSuccess, upload_complete_handler : uploadComplete, queue_complete_handler : queueComplete // Queue plugin event }; swfu = new SWFUpload(settings);
b.php端操作,代码:
$file=$_FILE['postFile']; $return=array();//定义数组 ....//文件移动操作、$return赋值 echo json_encode($return);//转为json对象,输出到页面,这样swf可以读取它
与本文相关的日志
- 2008-10-31 -- AJAX[PHP,JS,JSON]的一个应用例子
- 2008-10-31 -- JSON 在JS和PHP中的应用
- 2008-10-29 -- 这几天做的一个简单广告管理系统
- 2010-11-26 -- 复习XMLHttpRequest,记个小笔记
- 2010-10-19 -- 简单的js调试函数