Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

【第二期投稿】Ajaxpost 之投机取巧

[复制链接]
体无完肤 发表于 2009-12-14 12:30:46 | 显示全部楼层 |阅读模式
Discuz!内置ajaxpost函数,配合showwindow来对提交的数据进行异步处理~

但是像我一样的初级开发者,使用起来还是有点吃力,比如像发送短消息(浮动情况)提交后,返回一个提示窗口,然后N秒后窗口消失。

看到pm_send.htm底部是这样的:
  1. <script type="text/javascript" reload="1">
  2. function messagehandle_$handlekey(key, msg) {
  3.         if(key == 1) {
  4.                 hideWindow('$handlekey');
  5.                 showDialog(msg, 'info');
  6.                 setTimeout(function () { hideMenu('fwin_dialog', 'dialog'); }, 3000);
  7.                 showCreditPrompt();
  8.                 $('return_$handlekey').innerHTML = '{lang pm_send}';
  9.                 $('return_$handlekey').className = '';
  10.         }
  11. }
  12. </script>
复制代码
这段JS代码就是说,当短消息发送成功以后,先隐藏发短消息的主体窗口,然后激活一个新窗口,然后3秒后自动隐藏该窗口。

不过按照这个自己做下来,始终没有成功,反正是不得窍,所以在这里提交成功返回的时候,我投机取巧一下,用其他方法实现这个效果(不是提倡大家这么做,自己研究透彻才是王道,只是自己实在研究不透的时候可以投机一把)。

在php中,在数据提交成功的最后,命名两个变量,并且赋值:
  1. $add = 'plugin.php?id=drc_shownow:show';
  2.       $msg = $scriptlang['drc_shownow']['show_success'];
复制代码
$add就是提交成功后,N秒后隐藏窗口,然后跳转到的URL;
$msg就是提交成功时候弹出的提示窗口里的提示信息;

然后再模板的infloat区域,判断这些变量:
  1. <!--{if $add && msg}-->
  2. <script type="text/javascript" reload="1">
  3. hideWindow('addtype');
  4. setTimeout("window.location.href='{$add}'", 2000);
  5. </script>
  6. <!--{/if}-->
复制代码
就是说,如果这两个变量存在,那么久执行这段JS代码,同样先隐藏主窗口,然后2秒后跳转到$add这个地址。

然后提示窗口怎么做呢?还是判断这两个变量:
  1. <!--{if empty($msg) && empty($add)}-->
  2. 主题窗口内容
  3. <!--{else}-->
  4. <script type="text/javascript" reload="1">showDialog('$msg', 'info', '{lang drc_shownow:win_title}');</script>
  5. <!--{/if}-->
复制代码
就是说,如果这两个变量为空,那就显示正常的主体窗口,如果两个变量存在,那就显示一个小窗口(提示窗口);

这样的话配合上面的隐藏代码,就实现了隐藏主窗口,弹出提示窗口,N秒之后跳转/刷新页面。

投机做法,仅供大家参考,还是那句话,研究透彻DZ本身哪种用法,才是王道!

评分

9

查看全部评分

cr180 发表于 2009-12-14 12:55:09 | 显示全部楼层
我也来坐下你的沙发

评分

1

查看全部评分

回复

使用道具 举报

yumao99999 发表于 2009-12-16 03:49:57 | 显示全部楼层
回复

使用道具 举报

abcnic18 发表于 2009-12-16 10:47:09 | 显示全部楼层
留个记号!

评分

1

查看全部评分

回复

使用道具 举报

abcnic18 发表于 2009-12-16 10:47:28 | 显示全部楼层
好东西

评分

1

查看全部评分

回复

使用道具 举报

aomm 发表于 2009-12-18 11:02:08 | 显示全部楼层
好东西啊  支持

评分

1

查看全部评分

回复

使用道具 举报

疯狂浪子 发表于 2009-12-18 11:03:04 | 显示全部楼层
这个需要支持的···

评分

1

查看全部评分

回复

使用道具 举报

vbs21 发表于 2009-12-18 11:06:55 | 显示全部楼层
我不能评分 帮你顶了
回复

使用道具 举报

jjtear 发表于 2009-12-18 11:08:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

wshe505 发表于 2009-12-18 11:26:43 | 显示全部楼层
支持多写一点这样的技术文章
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-24 07:50 , Processed in 0.043729 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表