最近match001.com项目做一个发送电子喜帖的功能,发现QQ油箱明信片功能差不多。于是乎构思做成那个样子。

有几点需要实现的:

  1. 背景图片、结婚相片的加载。
  2. N多的事件绑定
  3. 跟相册数据绑定,选择相册列出所有相片,并且相片分页。所有的都AJAX实现
  4. 初始化一个DIV用来控制上层图片位置移动,根据不同背景图片,初始化不不同的控制DIV。
  5. 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']->query("SELECT COUNT(*) FROM ".tname('pic')." WHERE $wheresql"),0);
  $query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('pic')." where $wheresql limit $start,$perpage");
  while ($row = $_SGLOBAL['db']->fetch_array($query)){
     $pics[] = $row['filepath'];
  }
  $multi = multi($count, $perpage, $page, "wedding.php?do=xitie&action=ajax&m=loadimg&uid=$space[uid]&albumid=$albumid", 'Imgs', 'Link');
  $mod = 'creatpic';
  include_once template('space_xitie_ajax');

模板代码如下:
 <!--{if $pics}-->
  <ul id="Pics">
  <!--{loop $pics $value}-->
  <li οnclick="x.setImg(this)"><img src="attachment/$value" width="75" height="45"/></li>
  <!--{/loop}-->
  </ul>
  <div class="page" id="Link">$multi</div>
 <!--{else}--> 
  <ul id="Pics">
   <li>您相册都还没有呢,赶快去创建相册上传照片吧!</li>
  </ul>
  <div class="page" id="Link">$multi</div>
 <!--{/if}-->

JS代码如下:

var albumid = $("album").value;
    if(albumid!=''){
     var url = './wedding.php?do=xitie&action=ajax&m=loadimg&albumid='+albumid+'&inajax=1';
     ajaxget(url, 'Imgs');
    }

(以上代码只是一个局部,并不完整)

UCHOME的AJAX分享相关推荐

  1. JQuery中$.ajax()分享

    2019独角兽企业重金招聘Python工程师标准>>> HTTP 请求加载远程数据.通过jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$. ...

  2. 分享:用promise封装ajax

    用promise封装ajax var ajaxOptions = {url: 'url',method: 'GET',async: true,data: null,dataType: 'text', ...

  3. ajax局部刷新后,如何让局部中的百度分享重新加载

    我这个人不怎么喜欢说太多话,看几个图你们就懂了 Ajax前 Ajax之后 原因分析 解决方法 收工 百度分享是集成了众多主流第三方网站分享和收藏按钮的工具. 通过百度分享轻松将主流第三方网站的分享按钮 ...

  4. java ajax jquery分页插件_分享精心挑选的12款优秀jQuery Ajax分页插件和教程

    摘要:这篇jQuery栏目下的"分享精心挑选的12款优秀jQuery Ajax分页插件和教程",介绍的技术点是"jquery_ajax分页插件.jquery_ajax.a ...

  5. ajax不执行_好程序员Java学习路线分享原生Ajax的使用

    好程序员Java学习路线分享原生Ajax的使用,首先我们先来看一下什么是 AJAX AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX 就是 异步.JavaScript ...

  6. 微信分享 ajax冲突,微信jssdk分享功能开发及解决ajax跨域的问题

    微信JS-SDK说明文档 微信JS-SDK Demo 我所要实现的分享功能要求:只要提供一段js代码给前端美工放置在静态页面等就可以实现分享功能. js代码如下: url=location.href; ...

  7. ajax 上传文件实例,Ajax异步上传文件实例代码分享

    非常不多说,直接给大家上干货,写的不好还请见谅. 具体代码如下所示: Index $(function() { $(':button').click(function () { var formDat ...

  8. addeventlistener不支持ajax_好程序员web前端学习路线分享了解AJAX是什么

    好程序员web前端学习路线分享了解AJAX是什么首先是服务器 什么是服务器:咱们的页面来源于服务器:实例(在phpnwo上面存放一个页面), 咱们把页面放在互联网的服务器上,就有了自己的网站了. 1. ...

  9. 微信hash ajax,基于vue hash模式微信分享#号的解决

    看代码吧~ // 问题描述在微信中分享到朋友圈或好友时,分享出去的路由被破坏,打开分享的链接,路由中的"#"会被去掉并追加?fromTimeline之类的后缀参数,这就造成了分享出 ...

最新文章

  1. VC使用ActiveX控件常见问题
  2. 翻译:AKKA笔记 - Actor消息 -1(二)
  3. dede 表单必填_织梦dedecms自定义表单选项必填怎么修改
  4. webstorm代码行数统计_10万行代码10万年薪,利用python查看自己写了多少代码
  5. 报班学python到底怎么样-学Python真的能让你找到出路吗?
  6. 看本地网速_安装 ANSYS 本地帮助
  7. inodemac_校园网客户端Mac版-Inode7.0 for mac下载 V7.0-PC6苹果网
  8. 映射技术之储存器映射
  9. python 片段_python片段程序
  10. jekenis安装与部署_入门兵器谱,测试相关软件系列——Jenkins自动化部署实录
  11. 史上最低价Surface!微软Surface Laptop Go上架 3700元起
  12. 正则表达式批量替换 单引号
  13. GDAL2.x与1.x的主要变化比较(以C++为例说明)
  14. FFMPEG结构体分析:AVIOContext
  15. C#的解题思路(1):不重复随机数的产生问题
  16. 令人赞叹的 MySQL
  17. php对浮点数小数取整,php除法取整数
  18. 单核性能强悍,Core i3 这次又要“默秒全”?
  19. Python内置下载服务器
  20. window.open在苹果手机上失效的问题

热门文章

  1. 老翁多年笔耕不断的奖赏
  2. python计算并返回 x 的 y 次幂的值
  3. 高中理科不好学计算机,理科非常差但我选了理 学理科真的很难吗
  4. 【论文翻译】异构信息网络核的文本分类
  5. 6s管理“清扫”在设备管理中的推行应用
  6. 爬取复仇者联盟4豆瓣短评生成词云
  7. datax 写数据到mysql ,mysql 字段类型为 datetime时
  8. eps格式图像的制作
  9. 如何设计抗住100亿次请求的抢红包系统?(附GitHub代码)
  10. chrome浏览器自定义安装方法