jQuery的Cookie封裝,與PHP互動
阿新 • • 發佈:2019-01-25
首先,用到兩個jQuery函式,JSON.parse(Json字串轉物件)和JSON.stringify(物件轉JSON字串)
我這裡的分成兩次封裝,因為資料不在一個頁面裡。
這是第一個頁面:
$(".color-gray").click(function(){ var detail = new Object();//自定義一個空物件 將獲取的引數放入這個物件 detail.userName = $('input[data-node="userName"]').val(); detail.userSex = $(".userSex").val(); detail.detail = $('input[data-node="address"]').val(); detail.phone = $('input[data-node="telephone"]').val(); detail.id = $('input[name="address_id"]').val(); $.cookie("info", JSON.stringify(detail));//用JSON.stringify函式將物件轉成JSON字串,放入Cookie裡。 location.href = "{pigcms{:U('User/adres_map')}"; });
第二個頁面:
$(".addresslist").live('click', function(){ info = JSON.parse($.cookie('info'));//因為第一個頁面中封裝的Cookie是JSON字串,這裡要先轉成物件。再將本頁面的資料放進去。 info.name = $(this).attr("address"); info.longitude = $(this).attr("lng"); info.latitude = $(this).attr("lat"); $.cookie('info', JSON.stringify(info));//放進去之後,重新封裝 location.href = "{pigcms{:U('User/add_adres')}&address_id="+info.id; });
這樣,頁面執行之後,Cookie中就有了上面的資料。
最後,jQuery清空Cookie,
$(".icon-arrow-left2").click(function(){
$.cookie('info', 0);
});
最最後,PHP方法互動,
<pre name="code" class="php">/* 執行編輯 */ public function edit_adres(){ $id = $_POST['address_id']; $params['name'] = $_POST['name']; $params['sex'] = $_POST['sex']; $params['address'] = $_POST['address']; $params['detail'] = $_POST['detail']; $params['phone'] = $_POST['phone']; $params['uid'] = $this->_uid; $params['longitude'] = $_POST['longitude']; $params['latitude'] = $_POST['latitude']; $params['create_time'] = time(); if( !$id ){ if($returnId=D('表名')->data($params)->add()){ if(IS_AJAX){ setcookie('info'); $this->ajaxReturn($returnId, '新增成功', 1);exit; } } else { $this->error('新增失敗,請重試!'); } } else { $where['address_id'] = $id; if(D('表名')->where($where)->data($params)->save()){ if(IS_AJAX){ setcookie('info'); $this->ajaxReturn($id, '編輯成功', 1);exit; } } else { $this->error('編輯失敗,請重試!'); } } }
最最最後,補充一下,
如果需要在頁面輸出已經寫好的cookie,需要先例項化一下,
detail = JSON.parse($.cookie('info'));
然後才能這樣使用,
detail.name