js点击事件,js读取字符串json相关知识点

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的时候也是这样。 

原文地址:https://www.cnblogs.com/php321/p/3288708.html