免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1716 | 回复: 5
打印 上一主题 下一主题

dancer中怎么样Ajax, ajax query不起作用. 帮忙看一看,谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-06 16:23 |只看该作者 |倒序浏览

app.pl

  1. get '/query' => sub {
  2.    $logger->debug_message("in GET /query");
  3.     template 'users';
  4. };

  5. ajax '/query' => sub {
  6.         $logger->debug_message("in AJAX /query");
  7.     print "hello",params->{user}
  8. };
复制代码
users.tt
  1. <html>
  2. <head>
  3. <title>Simple Ajax Example</title>
  4. <script language="Javascript">
  5. function xmlhttpPost(strURL) {
  6.     var xmlHttpReq = false;
  7.     var self = this;
  8.     // Mozilla/Safari
  9.     if (window.XMLHttpRequest) {
  10.         self.xmlHttpReq = new XMLHttpRequest();
  11.     }
  12.     // IE
  13.     else if (window.ActiveXObject) {
  14.         self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
  15.     }
  16.     self.xmlHttpReq.open('POST', strURL, true);
  17.     self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  18.     self.xmlHttpReq.onreadystatechange = function() {
  19.         if (self.xmlHttpReq.readyState == 4) {
  20.             updatepage(self.xmlHttpReq.responseText);
  21.         }
  22.     }
  23.     self.xmlHttpReq.send(getquerystring());
  24. }

  25. function getquerystring() {
  26.     var form     = document.forms['f1'];
  27.     var word = form.word.value;
  28.     qstr = word;  // NOTE: no '?' before querystring
  29.     return qstr;
  30. }

  31. function updatepage(str){
  32.     document.getElementById("result").innerHTML = str;
  33. }
  34. </script>
  35. </head>
  36. <body>
  37. <form name="f1">
  38.   <p>word: <input name="word" type="text">  
  39.   <input value="Go" type="button" onclick='JavaScript:xmlhttpPost("/query/")'></p>
  40.   <div id="result"></div>
  41. </form>
  42. </body>
  43. </html>
复制代码

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2012-07-06 16:27 |只看该作者
真心建议你不要这么费劲了,直接用 jQuery 吧,这个超好使。
或者用 d3 也行。

论坛徽章:
0
3 [报告]
发表于 2012-07-06 16:54 |只看该作者
回复 2# flw


    好吧,我先看看Jquery资料。thank you!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2012-07-06 22:46 |只看该作者
我也是最近开始用jQuery,感觉这东西好用而且简单,配合Dancer,Dancer只负责把需要的数据JSON到前面,之后的事情就jQuery来做了。jQuery鼓捣AJAX,太简单了。

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
5 [报告]
发表于 2012-07-07 21:11 |只看该作者
jquery 必需的!

论坛徽章:
0
6 [报告]
发表于 2012-07-08 16:01 |只看该作者
本帖最后由 Perl_Er 于 2012-07-10 15:40 编辑

Thanks everyone!!!

了解了一下JQuery感觉确实简单好用。以后肯定可以用的上。至于我这个代码的问题, 我在原本的基础上改了一下,把ajax改为post,模板里面调用/query/:user这个router得到返回数据,然后用javascript处理, 用Ajax显示内容。
  1.     get '/query/:user' => sub {
  2.         template 'users';
  3.     };

  4.     post '/query/:user' => sub {
  5.             to_xml({...}, RootName=>undef )
  6.     };
复制代码
至于在app.pl里面用ajax关键字不起作用,不知道是咋回事。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP