最近在研究phpcms这个框架,应客户需求开发模块插件,其中有个功能需用到ajax,因之前ajax用的比较少,不是很熟,在使用的过程当中,出现了许多问题,最终都一一解决了,在这里分享一下出现的问题,及ajax使用。
问题一:点击无响应?
解决方法:通过控制台,可以看到提示,pc_hash 验证失败。
然后在URL加上pc_hash=<?php echo $_SESSION['pc_hash'];?>即可解决。
问题二、json_encode(),将数组转换成JSON字符串,乱码。
解决方法:使用json_encode($data,JSON_UNESCAPED_UNICODE);进行转换,注意,此方法php版本必须5.4以上。
问题三、成功获取json数据后,如何遍历数据,到前台页面?
解决方法:【来源网络】
1.遍历对象
- $(function(){
- var tbody = "";
- //------------遍历对象 .each的使用-------------
- //对象语法JSON数据格式(当服务器端回调回来的对象数据格式是json数据格式,必须保证JSON的格式要求,回调的对象必须使用eval函数进行转化(否则将得不到Object)。本文不作详细介绍服务器端回调的数据问题,我们将直接自定义对象)
- var obj =[{"name":"admin","password":"123456"}];
- $("#result").html("------------遍历对象 .each的使用-------------");
- alert(obj);//是个object元素
- //下面使用each进行遍历
- $.each(obj,function(n,value) {
- alert(n+' '+value);
- var trs = "";
- trs += "<tr><td>" + value.name +"</td> <td>" + value.password +"</td></tr>";
- tbody += trs;
- });
- $("#project").append(tbody);
- });
- $(function(){
- var tbody = "";
- //------------遍历数组 .each的使用-------------
- var anArray = ['one','two','three'];
- $("#result").html("------------遍历数组 .each的使用-------------");
- $.each(anArray,function(n,value) {
- alert(n+' '+value);
- var trs = "";
- trs += "<tr><td>" +value+"</td></tr>";
- tbody += trs;
- });
- $("#project").append(tbody);
- });
- $(function(){
- var tbody = "";
- //------------遍历List集合 .each的使用-------------
- var obj =[{"name":"zhangsan","password":"123456"},{"name":"lisi","password":"333333"}];
- $("#result").html("遍历List集合 .each的使用");
- alert(obj);//是个object元素
- //下面使用each进行遍历
- $.each(obj,function(n,value) {
- alert(n+' '+value);
- var trs = "";
- trs += "<tr><td>" +value.name+"</td> <td>" + value.password +"</td></tr>";
- tbody += trs;
- });
- $("#project").append(tbody);
- });
附上Ajax代码【因临时写的,细节上还没有处理,功能已测试可用】
<script type="text/javascript">
$(document).ready(function(){
$("#search").click(function(){
$.ajax({
type : "get",
url : "index.php?m=work&c=remark_manage&a=search_remarkcontent_ajax&pc_hash=<?php echo $_SESSION['pc_hash'];?>,
datatype : "json",
async:'false',
success : function(data){
var jsonData = JSON.parse(data);
var tbody = "";
$.each(jsonData,function(n,value) {
var trs = "";
trs += "<tr><td>" +value.id+"</td> <td>" + value.remark_content +"</td></tr>";
tbody += trs;
});
$("#tsearchlist").append(tbody);
$("#remarklist").hide();
},
});
});
});
</script>