Discuz Uchome ajaxpost小技巧

2015-01-24信息快讯网

discuz的ajaxpost功能有点强大,但缺点也很明显,如果ajaxpost提交一个FORM,那么返回的时候只能显示showmessage的内容,而不会主动跳转,因此这里就有一个小技巧 了。

比如默认submit按钮这样操作:onclick="ajaxpost('formid')";之类的,我们可以先这样。。
onclick="$('__formid').innerText='';ajaxpost('formid');checkPostResult();";
含义其实很简单,先把ajaxpost提示信息所在的div内容清空。然后提交。最后,根据返回值来判断。。
 
function checkPostResult(){ 
var cid = setInterval(function(){ 
if( $('__formid').innerText == 'success'){ 
alert('提交成功'); 
location.href='xxxxx.php'; 
clearInterval(cid); 
} 
},1000); 
} 

这个处理也很简单,为什么是用setInterval和clearInterval,主要是由于ajax是异步操作,如果不用setInterval方法 ,那么在ajaxpost结束的时候,其实提示信息还没有append到提示信息所在的ID里,所以用setInterval方法先延迟然后循环处理最后再结束提示。。。

clearInterval用的不太对,但短时间内想不到更好的。先这样临时解决喽。
redis 队列操作的例子(php)
一些需要禁用的PHP危险函数(disable_functions)
php模拟post行为代码总结(POST方式不是绝对安全)
PHP中运用jQuery的Ajax跨域调用实现代码
php中通过curl模拟登陆discuz论坛的实现代码
PHP中如何判断AJAX提交的数据
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
shopex主机报错误请求解决方案(No such file or directory)
PHP写UltraEdit插件脚本实现方法
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
php中$_REQUEST、$_POST、$_GET的区别和联系小结
php中模拟POST传递数据的两种方法分享
php中使用Curl、socket、file_get_contents三种方法POST提交数据
ajax 的post方法实例(带循环)
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
php INI配置文件的解析实现分析
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
php的ajax框架xajax入门与试用介绍
晋城吧对DiscuzX进行的前端优化要点
使用VisualStudio开发php的图文设置方法
php 模拟POST|GET操作实现代码
ajax实现无刷新分页(php)
php下mysql数据库操作类(改自discuz)
Discuz!下Memcache缓存实现方法
基于asp+ajax和数据库驱动的二级联动菜单
php 使用post,get的一种简洁方式
PHP CURL模拟GET及POST函数代码
ajax+php打造进度条代码[readyState各状态说明]
ajax+php打造进度条 readyState各状态
©2014-2024 dbsqp.com