Thinkphp ajax传值与显示
ajax具有异步刷新的功能,所用web页面需要ajax进行数据交互,故而先在thinkphp测试了一下ajax数据传输。
thinkphp后台:利用ajaxReturn返回数据
<?php
namespace HomeController;
use ThinkController;
use ThinkModel;
header("charset=utf-8");
class UserController extends Controller {
public function index(){
$this->display();
}
public function ajax(){
//ajax传值测试
$test="ajax传值测试";
$this->ajaxReturn($test);
}
?>前端js解析:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ajax测试</title>
<script type="text/javascript" charset="UTF-8">
function show(){
var ajax=new XMLHttpRequest();
ajax.open("GET","{:U("ajax")}",true);
ajax.setRequestHeader("Content-Type","text/html;charset=utf-8");
ajax.send();
ajax.onreadystatechange=function(){
if(ajax.readyState==4 &&ajax.status==200 ){
var str = eval(""" + ajax.responseText + """);//将ajax返回的json数据转换为中文显示
document.getElementById("div").innerHTML=str;
}
}
}
</script>
</head>
<body>
<div id="div"></div>
<button onclick="show()">AJAX</button>
</body>
</html>在返回的json数据的显示上面,由于对json完全不知道,走了很多弯路,刚开始只能显示出一串unicode编码 这类u5bf9u4e0d
后来搜索“将json格式数据显示为中文”找到了方法:
例如有这样的数据:
var str = "\u6211\u662Funicode\u7F16\u7801";
1. eval解析或new Function(""+ str +"")()
str = eval(""" + str + """); // "我是unicode编码"2. unescape 解析
str = unescape(str.replace(/u/g, "%u")); // "我是unicode编码"
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: thinkphp数组处理
- 下一篇:没有了
