UCHOME的AJAX分享
最近match001.com项目做一个发送电子喜帖的功能,发现QQ油箱明信片功能差不多。于是乎构思做成那个样子。
有几点需要实现的:
背景图片、结婚相片的加载。
N多的事件绑定
跟相册数据绑定,选择相册列出所有相片,并且相片分页。所有的都AJAX实现
初始化一个DIV用来控制上层图片位置移动,根据不同背景图片,初始化不不同的控制DIV。
JS收集背景图片与相片的相关信息以及他们的位置数据,AJAX到后台处理。根据不同的方式处理,比如 view预览,保存发送等等。
这里针对第三点说说,AJAX得到用户相册数据。
这里需要用到AJAX和数据分页,UCHOME里有两个非常棒的函数。ajaxget()和muti()。
ajaxget(url, showid, waitid);参数url为请求路径(必选参数),showid为AJAX请求后返回内容的显示ID(必选参数),waitid为等待请求时候显示loading...的ID(可选,没这个参数的话默认将showid作为waitid)。
uchome的使用AJAX时候有一个注意地方,刚不了解朋友可能尝试使用如下JS代码处理AJAX:
var x = new('XML', '');
x.get(url, function(s){
//some code;
});
处理返回一个XML或者HTML格式数据,echo 出来后,再用自己用JS控制显示数据。这里要说的是UCHOME经常会碰到一个XML错误的位置。。什么的错误信息,之前我也是这样处理,搞了好久,后来Google搜一把,原来不能简单后台echo输出。后来想到UCHOME李的template函数,于是乎做一个模板,数据PHP后台得到后不做任何处理,跟其他页面一样,存于变量里,在模板里调用就是。至于分页,也一样,UCHOME里multi函数返回的就是一个分页链接。也在模板里处理显示。而前段JS只需要这样:
ajaxget(url, showid);
具体PHP代码如下:
$albumid = ($_GET[albumid]) ? $_GET['albumid'] : '';
if($albumid == '') exit('error');
$perpage = 8; //每页要显示的条数
$page = empty($_GET['page']) ? 1 : intval($_GET['page']);
if($page<1) $page=1;
$start = ($page-1)*$perpage;
ckstart($start, $perpage);
$wheresql = " albumid='$albumid' AND uid='$space[uid]'";
$count = $_SGLOBAL['db']->result($_SGLOBAL['db']-
相关文档:
Ajax传参乱码 Ajax中文乱码 解决
在Ajax url传参时出现中文乱码的情况,解决方法:
例1: xmlHttp.open("GET","Engine.aspx?Action=getmainsort&Type= ......
Client端
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script language="javascript">
var XmlHttp=new ActiveXObject("Microsoft.XMLhttp");
function sendAJAX()
{
&nb ......
在上一篇文章中,我们讨论了如何通过javascript从一个远程XML文件中取得数据。在这篇文章中,我们将学会怎样对数据作更复杂的处理。作为一个示例,我们会准备一组XML数据,将数据分割成独立的片断并以不同的方式展示这些片断(取决于它们是如何被标识的)。
这篇文章是建立在上一篇文章中构造的示例代码的基础之上 ......
Ajax表单提交数据出现乱码和解决办法
//要传递的参数
var queryString = "firstName=" + firstName + "&lastName=" + lastName
&nbs ......