1.js点击触发函数:
<a onclick="deleteImage(10)"><font color="red">删除</font></a>
<script>
function deleteImage(num){
alert(num);
}
</script>
简单说明:在写前端页面的时候时不时的需要写些点击触发的函数,总是忘了具体怎么实现的,这次记录下来,以后忘了,就跑自己园子里来看。
2.json字符串格式装换成对象
在客户端与服务器端进行AJAX交互的过程中,json是一种很方便的批量传输数据的格式,因此在服务器端/客户端读写json就显得很重要。php服务器端一般用json_encode($data)来将数据转换为json格式;
浏览器端接收到参数后一般使用如下方法将字符串转换为对象:
function readJson(data){
var obj=eval("("+data+")");
return obj;
}
然后再通过obj.upid,obj.name等来获取json数据下面通过实力来说明:
浏览器端程序:
<script type="text/javascript">
$(document).ready(function(){
$(".btn-warning").click(function(){
$.ajax({
type:"post",
url:"<?php echo Yii::app()->getBaseUrl();?>"+"/test/ajaxjson",
data:{name:"tom",age:13},
success:function(msg){//接受的msg为字符串类型
console.log(msg);
json=eval("("+msg+")");//将字符串类型转化为对象类型
console.log(json);
for(var o in json){//循环方式
console.log(json[o].name);
$(".nav-list").append('<li><a href="#"><i class="icon-book"></i>'+json[o].name+'</a></li>');
}
}
});
});
});
</script>
php端程序:
public function actionAjaxjson(){
$data=array(1=>array('name'=>'苹果'),2=>array('name'=>'香蕉'),3=>array('name'=>'梨'));
foreach($data as $k=>$value){
$data[$k]=array('name'=>urlencode($value['name']));
}
echo urldecode(json_encode($data));
die;
}
需要注意的是在处理中文字符串时json格式的数据会经常遇到乱码,网上解决的办法很多,这里提供一种方法。就是将中文字符串通过urlencode编码,之后再用urldecode解码即可。
3.其它,
这几天主要写文件上传,用到了swf插件实现类似于无刷新上传附件,期间包括json这块儿出了写问题,后来过了大约半小时左右就自己好了。初步推断应该是浏览器缓存的原因,所以有些莫名其妙的错误网上找半天也没找到原因,没准就是缓存的原因,自己前端时间学习java几个ssh的时候也是这样。