• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

【Lua】LWT后台用JSON与ExtJS传递数据

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  要完成目录树的构建,需要前台ExtJS构筑页面,后台处理逻辑,中间由JSON传递数据。

  首先搭建后台环境:

 1 require "httpd" 
 2 require "lfs"
 3 
 4 request, args = ... 
 5 
 6 local s = {root = { 
 7         text = "rootNode",
 8         expanded = true,
 9         children = {
10             {
11                 text = 'book1',
12                 leaf = true
13             },
14             {
15                 text = "book2",
16                 expanded = true,
17                 children = {
18                     {
19                         text = "con1",
20                         leaf = true
21                     },{
22                         text = "con2",
23                         leaf = true
24                     }
25                 }
26             },
27             {
28                 text = "book3",
29                 expanded = true,
30                 leaf = true
31             }
32         }
33     }
34 }
35 
36 local cjson = require("cjson")
37 local tJson = cjson.encode(s)
38 
39 httpd.set_content_type("text/json")
40 httpd.write(tJson)

  这里虚拟了一个树数据结构s,将其打包后返回给请求方。

  然后是html部分:

 1 <html>
 2     <head>
 3         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 4         
 5         <title>ExtJS TreePanel</title>
 6         <link rel="stylesheet" type="text/css" href="../../ext-5.0.0/examples/shared/example.css" />
 7         
 8         
 9         <script type="text/javascript" src="../ext-5.0.0/examples/shared/include-ext.js"></script>
10         <script type="text/javascript" src="../ext-5.0.0/examples/shared/options-toolbar.js"></script>
11         
12         <script type="text/javascript" src="test.js" charset="utf-8" ></script>
13   
14     </head>
15     <body style=" margin: 0; padding: 0;">
16     </body>
17 </html>

  最后是ExtJS部分:

 1 Ext.require('Ext.tree.Panel')
 2 
 3 Ext.onReady(function(){
 4     Ext.Ajax.request({
 5         url: 'm.lua',       //后台文件path
 6         method: 'post',
 7         params: {
 8             action: 'getDir',
 9         },
10         success: function(response){
11             var text = response.responseText; 
12             var obj = eval('(' + text + ')'); 
13             console.log(obj);             
14         }, 
15         failure: function() {
16             Ext.Msg.alert("失败","失败了");
17         }
18     });
19 });

  其中response内容是这样的:

  所以可以用"response.responseText"来调用响应内容的主体。

  在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。

  JSON字符串转换为JSON对象:

    var obj = eval('(' + str + ')');

  这样就能获取一个可供使用的JSON对象了。

    


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
iLuaBox:在iPhone/iPad上随时随地用Lua编程发布时间:2022-07-22
下一篇:
Lua IDE 选择发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap