1. 程式人生 > >【前端】繫結手機號跳轉到“下一步”

【前端】繫結手機號跳轉到“下一步”

前言

  小編最近在做專案時遇到一個功能,使用者A在下單買東西時,前提條件有兩個:必須是登陸狀態,必須是有手機號資訊(在微信方式等其他方式登陸時,沒有手機號資訊)。跳轉“繫結手機號頁面”成功之後,需要跳轉到下單的“下一步”。

實現思路的難點

一、如何跳轉到下一步

  1.頁面上方,新增if判斷是否是跳轉過來的頁面(相當於頁面載入執行的$(document).ready)
//判斷是否從繫結手機號返回的頁面
var isJump = GetQueryString('isJump');//從繫結手機頁面傳過來的URL中的引數
if(isJump!=undefined && isJump=='yes') {
    var bindPhoneParam = sessionStorage.getItem("bindPhoneParam"); //讀取 通過session儲存的引數值
    bindPhoneParam =   eval('(' + bindPhoneParam + ')');//json字串轉成json物件
    buyFood(bindPhoneParam);//下單的方法
}

  2.下單的方法,提取出來

// 提取通用的賣品下單方法
function buyFood(newGoodOrder){
    Zepto.ajax({
        type:"post",
        url: URL + '/app/sellGoods/createOrder', //建立賣品訂單
        data: newGoodOrder,
        dataType:"json",
        success:function(data){
//						console.log(data);
            if(data.resultCode == '0'){
                var orderId = data.resultData.orderId;
//							window.location = 'firmGoodsOrder.html?orderNo=' + orderId;
                window.location = path+'/page?pagePath=mall/sellOrderConfirm&orderNo=' + orderId+'&companyCode='+sessionStorage.movieCode;
            } else {
                yh.oAlert(data.resultDesc);
            }
        },
        error:function(data){
            console.log("失敗"+JSON.stringify(data));
        }
    });
}

  3.執行ajax方法所需的引數放到session物件中,跳轉回來時,直接執行下單方法

submitFn: function(){

			newGoodOrder.goodsInfo = JSON.stringify(goodsPara);
            sessionStorage.bindPhoneParam = JSON.stringify(newGoodOrder);//繫結手機跳轉頁面需要的引數

            //跳轉繫結手機號
            var memberPhone=storage.memberPhone;
            if( memberPhone==null || memberPhone == '' || memberPhone=='undefined'){
                yh.oAlert("請先繫結手機號碼");
                //將頁面引數傳入地址
                var pageName="buyFood";
                window.location.href=path + '/page?pagePath=bindPhone/bindPhone&pageName='+pageName;

            } else {
                sessionStorage.removeItem("bindPhoneParam");
                sessionStorage.removeItem("goodsInfo");
                buyFood(newGoodOrder);
            }

二、json物件的獲取

  1.在上面存取session時,我們存進去的是json字串,在讀取的時候,無法獲取值
sessionStorage.bindPhoneParam = JSON.stringify(newGoodOrder); //存進去的是json字串

  2.獲取json物件裡面的值時,我們需要轉換。

    var bindPhoneParam = sessionStorage.getItem("bindPhoneParam");
    bindPhoneParam =   eval('(' + bindPhoneParam + ')');

小結

  在實現這個功能的時候,自己寫的比較麻煩,多虧了專案組長和同事的幫忙,自己實現了這個功能,虛心向優秀的人學習!
感謝您的訪問!