ajax:
//获取商品属性数据
function initGoodsAttr(){
  $.ajax({
      type: 'GET',
      url:"<?php echo WX_SITE_URL.'/wx_shop.php?act=goods&op=goods_info_json&id_type='.$output['id_type'].'&goods_id='.$output['goods_id'];?>",
      data:'',
      dataType: 'json',
      success: function(data){
        if (data.statusCode == '200') {
          goods = data.result;
          initAttrPage(openid);
          currentGoodsCount = 1;
        }
      },
      error: function(xhr, type){
          alert('商品属性获取失败!');
      }
  });
}
 
 
商城跳转:
 
 
 
 
 
微信执行请求的方法:
$appid = "";
$appsecret = "";
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$jsoninfo = json_decode($output, true);
$access_token = $jsoninfo["access_token"];
 
 
 
weiPHP中持久层的代码:
if (! empty ( $_REQUEST ['shop_id'] )) {
  $this->shop_id = I ( 'shop_id' );
  session ( 'wap_shop_id', $this->shop_id );
} else {
  $this->shop_id = session ( 'wap_shop_id' );
}
 
$map ['token'] = get_token ();
 
 
后台json的解析:
app提交:
$raw_str = $GLOBALS['HTTP_RAW_POST_DATA'];
$post = json_decode($raw_str);
$cate_id = intval($post->cate_id)>0 ? $post->cate_id : 0;//商品分类
 
Ajax提交:
(前)
var data = JSON.stringify(cart);
 
(后)
$str2 = file_get_contents("php://input");
$post = json_decode($str2);
$result = add_cart($post->member_id, $post->cart_all);
 
 
(前)
var data = {
    "mobile_phone": username
};
(后)
$mobile_phone = $_POST['mobile_phone'];
 
jquery操作html:
判断没有没有类:$(".product-subtract").hasClass("grey")
移除类:$(".product-subtract").removeClass("grey");
增加类:$(".product-subtract").addClass("grey");
内容获取:$(".attr-info").html(); 
内容赋值:$(".attr-info").html(color_value+","+ size_value); 
获取属性值:var dbg = the_size.attr("data_belong_goods");// 取出当前size所从属的商品id
修改属性值:$("#spec_image").attr("src",good.spec_image);
元素后追加内容:$('.row').after(goods);
元素前追加内容:$('.row').before(goods);
内部后追加内容:$('.row').append(goods);
内部前追加内容:$('.row').prepend(goods);
移除:$("#div1").remove();
隐藏:$("#div1").hide();
显示:$("#div1").show();
页面刷新:location.reload();
返回上一页并刷新:location.href = document.referrer
返回上一页不刷新:window.history.go(-1);
选择到多个元素后到遍历:
$(".attr").each(function (){}
获取父节点:
var thisPlus = $(this);
var thisGrid = thisPlus.closest('._grid');
 
js类型转换
count =Number(clothe.goods_storage);
str =String(clothe.goods_name);
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
 
js数组:
var  array = [];
array.push(temp_color);
 
空值判断:
 if (openid.length == 0)
 
js价格计算:
var test = '1.11';
var test2 = '1.01';
alert((Number(test)-Number(test2)).toFixed(2));
 
js页面跳转:
window.location.href='<?php echo WX_SITE_URL.'/wx_shop.php?act=member&op=loginPage'?>';
 
 
js  使用post请求跳转页面的方法(将参数封装到一个form内);
    $("#service").click(function () {
      var data = {
        "goods_id":"<?php echo $output['goods_info']['goods_commonid']; ?>",
        "isSingle":"0",
        "goods_price": $(".member-price").html()
      };
      standardPost("<?php echo WX_SITE_URL.'/wx_shop.php?act=goods&op=openim'?>", data);
    });
 
    function standardPost (url,args)
    {
      var body = $(document.body),
          form = $("<form method='post'></form>"),
          input;
      form.attr({"action":url});
      $.each(args,function(key,value){
          input = $("<input type='hidden'>");
          input.attr({"name":key});
          input.val(value);
          form.append(input);
      });
      form.appendTo(document.body);
      form.submit();
      document.body.removeChild(form[0]);
    }
 
    //使用form提交数据。 带array
      function standardPost (url,args){
        var body = $(document.body),
          form = $("<form method='post'></form>"),
          input;
        form.attr({"action":url});
        $.each(args,function(key,value){
          if (Object.prototype.toString.call(value) === '[object Array]') {
            for (var i = 0; i < value.length; i++) {
              var name = key+"[]";
              input = $("<input type='hidden'>");
              input.attr({"name":name});
              input.val(value[i]);
              form.append(input);
            }
          }else{
            input = $("<input type='hidden'>");
            input.attr({"name":key});
            input.val(value);
            form.append(input);
          }
         });
        form.appendTo(document.body);
        alert($("form").html());
        form.submit();
        document.body.removeChild(form[0]);
      }
 
 
 
 
 
php:
数组长度:count(array) 
数组增加:array_push($a,"blue","yellow");
字符串相等:
if (strcasecmp($output['goods_info']['return_price'], '0.00')==0)
或恒等式:
if ($output['goods_info']['return_price'] ==="0.00")
 
类型转换:
$foo = "1"; // $foo 是字符串类型 
$bar = intval($foo); // $bar 是整型 
 
分割字符串: 
$cart_id = explode(',', $_GET['cart_id']);
 
空值检查:
(!isset($mobile_phone) || empty($mobile_phone)
 
 
 
合成图片:
<?php
function mergerImg($imgs) {
 
        list($max_width, $max_height) = getimagesize($imgs['dst']);
        $dests = imagecreatetruecolor($max_width, $max_height);
 
        $dst_im = imagecreatefrompng($imgs['dst']);
 
        imagecopy($dests,$dst_im,0,0,0,0,$max_width,$max_height);
        imagedestroy($dst_im);
 
        $src_im = imagecreatefrompng($imgs['src']);
        $src_info = getimagesize($imgs['src']);
        imagecopy($dests,$src_im,0,$max_height/2,0,0,$src_info[0],$src_info[1]);
        imagedestroy($src_im);
 
        header("Content-type: image/jpeg");
        imagejpeg($dests);
}
 
$imgs = array(
        'dst' => 'http://www.*/*.png',
        'src' => 'http://www.*/*.png'
);
 
 
 <?php echo WX_TEMPLATES_URL;?>/

技术总结PHP+微信的更多相关文章

  1. 微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)

    1.点评 对于IM系统来说,如何做到IM聊天消息离线差异拉取(差异拉取是为了节省流量).消息多端同步.消息顺序保证等,是典型的IM技术难点. 就像即时通讯网整理的以下IM开发干货系列一样: <I ...

  2. 腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践

    1.概述 本文来自腾讯视频云终端技术总监rexchang(常青)技术分享,内容分别介绍了微信小程序视音视频和WebRTC的技术特征.差异等,并针对两者的技术差异分享和总结了微信小程序视音视频和WebR ...

  3. 腾讯技术分享:微信小程序音视频技术背后的故事

    1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...

  4. 技术博客——微信小程序UI的设计与美化

    技术博客--微信小程序UI的设计与美化 在alpha阶段的开发过后,我们的小程序也上线了.看到自己努力之后的成果大家都很开心,但对比已有的表情包小程序,我们的界面还有很大的提升空间,许多的界面都是各个 ...

  5. 技术博客--微信小程序canvas实现图片编辑

    技术博客--微信小程序canvas实现图片编辑 我们的这个小程序不仅仅是想给用户提供一个保存和查找的平台,还希望能给用户一个展示自己创意的舞台,因此我们实现了图片的编辑部分.我们对对图片的编辑集成了很 ...

  6. 技术博客——微信小程序的架构与原理

    技术博客--微信小程序的架构与原理 在两个月的微信小程序开发过程中,我曾走了不少弯路,也曾被很多现在看来十分可笑的问题所困扰.这些弯路与困扰,基本上都是由于当时对小程序的架构理解不够充分,对小程序的原 ...

  7. 微信跳转技术,浏览器唤起微信,weixin://dl/business/?ticket=

    weixin://dl/business/?ticket=  到底怎么生成的?调用以下接口 weixin://dl/scan 扫一扫weixin://dl/feedback 反馈weixin://dl ...

  8. 分享Azure DevOps技术,来微信群吧!

    现在QQ用户越来越少,基本上都转移到微信上了. 讨论问题,动不动就来一个微信群.下面这样几百人的微信群,专门讨论Azure DevOps (TFS)技术,你加入了么? 还等什么,扫描吧!

  9. 史上最全最强Charles截取手机https协议数据包教程(附上利用此技术制作最近微信比较火的头脑王者辅助外挂)!

    纯原创,思路也是本人花了半个小时整理出来的,整个完成花费了本人半天时间,由于不才刚大学毕业,所以有的编码方面可能不入大牛们的眼,敬请原谅!如有转载请附上本地址,谢谢! 最近微信朋友圈刚刚被跳一跳血洗, ...

随机推荐

  1. Idea Cannot import to svn: Cannot run program "svn"

    svn 出此问题:意味着不可检出代码. 按此修改,重启IDEA即可检出svn代码.

  2. cadence原理图和PCB互联显示成功但是不能高亮和database

    问题现象:cadence原理图和PCB互联显示成功但是不能高亮我的问题 解决:尝试修复数据库试试,Tools->Database check 提醒:有一个封装非法命名,在原理图中修改后 再次保存 ...

  3. svn:database disk image is malformed问题解决方法

    今天一客户使用我们软件时突然停电,再次启动软件查询SQLite数据库报 The database disk image is malformed 错误. 百度一下基本上全部是http://www.cn ...

  4. nginx正则说明

    nginx正则说明 分类: nginx -- : 11758人阅读 评论() 收藏 举报 nginx正则表达式firefox ^~ 标识符后面跟一个字符串.Nginx将在这个字符串匹配后停止进行正则表 ...

  5. discuz添加管理员,找回管理员方法

    增加创始人方法: 第一步:打开现在创始人的后台,将你所需要增加的创始人设置为管理员,并且给予后台副站长权限,这两部一定要做到位,先把这两步做完之后再做下面的! 具体设置管理员和给予后台副站长权限请查看 ...

  6. row format delimited fields terminated by ','

    row format delimited fields terminated by ',' 以','结尾的行格式分隔字段

  7. linux虚拟文件系统vfs

    linux可以挂载不同的文件系统(EXT2,FAT,NTFS),用同一的样式呈现给用户,读写操作用起来都一样,这是怎样做到的呢? linux内核在各种不同的文件系统格式上做了一个抽象层,使得文件.目录 ...

  8. Python os._exit() sys.exit() exit()区别

    Python退出程序的方式有两种:os._exit(), sys.exit() 1)os._exit() 直接退出 Python程序,其后的代码也不会继续执行. 2)sys.exit() 引发一个 S ...

  9. C指针类型小结

    要理解复杂的指针类型其实很简单,一个类型里会出现很多运算符,它们也像普通表达式一样,有优先级. 原则: 从变量名开始,根据运算符优先级结合,一步一步分析. 下面让我们先从简单的类型开始慢慢分析吧: i ...

  10. TP中单字母快捷函数总结

    ThinkPHP中有许多使用简便的单字母函数,可以很方便开发者快速的调用,但是字母函数却不方便记忆,本文将所有的字母函数总结一下,以方便以后查找.1.U() URL组装 支持不同URL模式 U($ur ...