牛骨文教育服务平台(让学习变的简单)
博文笔记

Thinkphp ajax传值与显示

创建时间:2016-11-06 投稿人: 浏览次数:2608

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编码"

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。