當前位置:首頁 » 網購平台 » thinkphp購物車
擴展閱讀
寧波奧德賽優惠價格 2021-03-15 14:26:02
丹尼斯購物卡能掛失么 2021-03-15 14:25:58
淘寶購物指紋驗證失敗 2021-03-15 14:24:44

thinkphp購物車

發布時間: 2021-02-22 05:33:10

Ⅰ 請問thinkphp session購物車該怎麼做我引用十八哥視頻上講的購物車類總是報錯!

這視頻我是沒看過
不過你的問題應該是操作session不成功是吧
操作session的步驟就是
sesstion_start(); // 開啟回session
$_SESSION['key'] = 'val'; // 保存session
echo $_SESSION['key']; // 獲取答session
session_destroy(); // 銷毀session

至於在TP上面呢 可以省略開啟和銷毀
$_SESSION['key'] = 'val'; // 保存session
echo $_SESSION['key']; // 獲取session
就可以了

正常的操作是這樣 如果不行的話 把報錯貼出來

純手動 還差幾個採納升級 謝謝

Ⅱ 求PHP里的TP5的購物車代碼

可以參考如下代碼

<?php
classCartextendsThink{
//當前購物車名
public$sessionName;
//購物車總價格
public$totalPrice
publicfunction__construct($sessionName)
{
$this->sessionName=$sessionName;
if(!isset($_SESSION[$this->sessionName]))
{
$_SESSION[$this->sessionName]="";
}
}

//獲取購物車的信息
publicfunctiongetCart(){
$cur_cart_array=$_SESSION[$this->sessionName];
return$cur_cart_array;
}

//獲取購物車商品清單
publicfunctiongetCartList()
{
$cur_cart_array=$_SESSION[$this->sessionName];
if($cur_cart_array!="")
{
$mode_goods_data=M("goods_data");
$len=count($cur_cart_array);
for($i=0;$i<$len;$i++)
{
$goodsid=$cur_cart_array[$i]["id"];
$num=$cur_cart_array[$i]["num"];
$query="select(selectsfilenamefromgoods_picwheregoodsid=a.goodsidorderbysnodesclimit0,1)assfilename,b.clsnameasclsname,a.goodsidasgoodsid,a.goodsnameasgoodsname,a.PriceasPrice,a._dataaleftjoingoods_clsbona.Clsid=b.clsidwherea.goodsid=$goodsid";
$list=$mode_goods_data->query($query);
$list[0]["qty"]=$num;
$list[0]["amount"]=$num*$list[0]["Price"];
$cartList[$i]=$list[0];
$totalPrice+=$list[0]["amount"];
}
//返回商品總價格
$this->totalPrice=$totalPrice;
return$cartList;
}
}

//加入購物車,購物車的商品id和購物車的商品數量
publicfunctionaddcart($goods_id,$goods_num){
$cur_cart_array=$_SESSION[$this->sessionName];
if($cur_cart_array=="")
{
$cart_info[0]["id"]=$goods_id;//商品id保存到二維數組中
$cart_info[0]["num"]=$goods_num;//商品數量保存到二維數組中
$_SESSION[$this->sessionName]=$cart_info;
}
else
{
//返回數組鍵名倒序取最大
$ar_keys=array_keys($cur_cart_array);
$len=count($ar_keys);
$max_array_keyid=$ar_keys[$len-1]+1;
//遍歷當前的購物車數組
//遍歷每個商品信息數組的0值,如果鍵值為0且貨號相同則購物車該商品已經添加
$is_exist=$this->isexist($goods_id,$goods_num,$cur_cart_array);
if($is_exist==false)
{
$cur_cart_array[$max_array_keyid]["id"]=$goods_id;
$cur_cart_array[$max_array_keyid]["num"]=$goods_num;
$_SESSION[$this->sessionName]=$cur_cart_array;
}
else
{
$arr_exist=explode("/",$is_exist);
$id=$arr_exist[0];
$num=$arr_exist[1];
$cur_cart_array[$id]["num"]=$num;
$_SESSION[$this->sessionName]=$cur_cart_array;
}
}
}

//判斷購物車是否存在相同商品
publicfunctionisexist($id,$num,$array)
{
$isexist=false;
foreach($arrayas$key1=>$value)
{
foreach($valueas$key=>$arrayid)
{
if($key=="id"&&$arrayid==$id)
{
$num=$value["num"]+$num;
$isexist=$key1."/".$num;
}
}
}
return$isexist;
}
thinkphp開發使得我們比較容易的去進行了

//從購物車刪除
publicfunctiondelcart($goods_array_id){
//回復序列化的數組
$cur_goods_array=$_SESSION[$this->sessionName];
//刪除該商品在數組中的位置
unset($cur_goods_array[$goods_array_id]);
$_SESSION[$this->sessionName]=$cur_cart_array;
//使數組序列化完整的保存到cookie中
}

//清空購物車
publicfunctionemptycart(){
$_SESSION[$this->sessionName]="";
}

//修改購物車貨品數量
publicfunctionupdate_cart($up_id,$up_num){
//回復序列化的數組
$cur_goods_array=$_SESSION[$this->sessionName];
$cur_goods_array[$up_id]["num"]=$up_num;
$_SESSION[$this->sessionName]=$cur_cart_array;
}
}
?>

Ⅲ ThinkPHP3.2 實戰項目,購物車列表顯示數據,怎麼顯示多條數據

就是foreach循環啊,另外,你這給出的是模板代碼~
先從控制器controller中查出購物車的數回據然後$this->assign('data', $data);到模板,然後$this->display();到該答控制器對應的模板。
然後在模板中foreach循環出購物車數據即可。

Ⅳ thinkphp框架開發商城的思路

一般來說,抄有以下幾點,其他根據自己需要:

  1. 至少兩個模塊,前台和後台(Home、Admin)

  2. 前台需要(控制器【方法】):用戶操作(【登入】、【登出】、【購物車】、【提交訂單】、【付款】等)、商品操作(【上架】、【下架】、【分類】、【數量】等)、新聞展示(不一一列舉,看實際需要)、留言等

  3. 後台需要(控制器【方法】):管理員操作(【登入】【登出】)、商品操作(【添加】【修改】【刪除】)、訂單操作(【查看】【修改】【發貨】【刪除】)、新聞展示、留言、日誌、許可權等

Ⅳ ThinkPHP購物車實現

你的問題說的也太模糊了吧.. 也沒說明購物車是基於session還是資料庫實現的 也沒說明是商品已經存入購物車了 但是沒取出來 還是壓根就沒存進去呢?

Ⅵ ThinkPHP框架怎麼做商城購物車

購物車其實很簡單的,主要就是一個數據保持的問題。大致的思路如下:

  1. 用戶加入購物車版的同時ajax請求後台權來進行庫存等信息預判;

  2. 預判通過後將商品ID或者其他信息寫入到cookie或者session中,

  3. 此時的數據就已經保持住了,不論用戶切換到哪個頁面都能顯示出來;

Ⅶ jQuery thinkphp 購物車多物品數量的加減+總價計算

(1)、js里用+=就是連接的意思,不是累加的意思,所以不能用s+=,需要用s=XXX+s。
(2)、如內果容+1的時候,資料庫也+1,這塊需要用到ajax,當你單機的時候,觸發ajax
$.post("url",{"id":"商品id"},function(data){

})
url填寫一個地址,把商品的id發到處理頁,就可以實現了

Ⅷ thinkphp做的session購物車,求詳細代碼。有完整例子的可以發下。非常感謝

<?php


classCartTool{
privatestatic$ins=null;
private$items=array();

finalprotectedfunction__construct(){
}

finalprotectedfunction__clone(){
}

//獲取實例
protectedstaticfunctiongetIns(){
if(!(self::$insinstanceofself)){
self::$ins=newself();
}

returnself::$ins;
}


//把購物車的單例對象放到session里
publicstaticfunctiongetCart(){
if(!isset($_SESSION['cart'])||!($_SESSION['cart']instanceofself)){
$_SESSION['cart']=self::getIns();
}

return$_SESSION['cart'];
}


/*
添加商品
paramint$id商品主鍵
paramstring$name商品名稱
paramfloat$ 商品價格
paramint$num購物數量
*/
publicfunctionaddItem($id,$name,$price,$brand,$thumb,$num=1){

if($this->hasItem($id)){//如果該商品已經存在,則直接加其數量
$this->incNum($id,$num);
return;
}

$item=array();
$item['id']=$id;
$item['name']=$name;
$item['price']=$price;
$item['brand']=$brand;
$item['thumb']=$thumb;
$item['num']=$num;

$this->items[$id]=$item;

return$this->items[$id];


}


/*
修改購物車中的商品數量
paramint$id商品主鍵
paramint$num某個商品修改後的數量,即直接把某商品的數量改為$num
*/
publicfunctionmodNum($id,$num=1){
if(!$this->hasItem($id)){
returnfalse;
}

$this->items[$id]['num']=$num;

}


/*
商品數量增加1
*/
publicfunctionincNum($id,$num=1){
if($this->hasItem($id)){
$this->items[$id]['num']+=$num;
}
}


/*
商品數量減少1
*/
publicfunctiondecNum($id,$num=1){
if($this->hasItem($id)){
$this->items[$id]['num']-=$num;
}

//如果減少後,數量為0了,則把這個商品從購物車刪掉
if($this->items[$id]['num']<1){
$this->delItem($id);
}
}


/*
判斷某商品是否存在
*/
publicfunctionhasItem($id){
returnarray_key_exists($id,$this->items);
}


/*
刪除商品
*/
publicfunctiondelItem($id){
unset($this->items[$id]);
}


/*
查詢購物車中商品的種類
*/
publicfunctiongetCnt(){
returncount($this->items);
}


/*
查詢購物車中商品的個數
*/
publicfunctiongetNum(){
if($this->getCnt()==0){
return0;
}

$sum=0;

foreach($this->itemsas$item){
$sum+=$item['num'];
}

return$sum;
}


/*
查詢購物車中商品的總金額
*/
publicfunctiongetPrice(){
if($this->getCnt()==0){
return0;
}

$price=0.0;

foreach($this->itemsas$item){
$price+=$item['num']*$item['price'];
}

return$price;
}/*
返回購物車中的所有商品
*/

publicfunctionall(){
return$this->items;
}

/*
清空購物車
*/
publicfunctionclear(){
$this->items=array();
}
}




以上是類文件,需要引入的。



$cart=CartTool::getCart();
$car_goods_list=$cart->all();//獲取商品列表

$goods_num=$cart->getNum();//商品個數

$goods_sum_price=$cart->getPrice();//總價格

$cart->addItem($goods_id,$goods_list['goods_name'],$goods_list['shop_price'],$goods_list['brand'],$goods_list['goods_thumb'],$num);//增加一件商品到購物車

$cart->clear();//清空購物車

Ⅸ 怎麼在thinkphp中用session實現購物車功能

數組啊,在點添加到購物車的時候,你就獲取購物列表session ,然後再後面再拼接一組數據,記住 拼接的時候一定要平級,不要有主次關系,要不然你獲取到的 數組 就是錯的!

Ⅹ 在thinkphp中如何使用checkbox 類似購物車的,如何用checkbox勾選n行數據,傳送到下一個頁面顯示出來。

$_POST表單提交後本來就會有勾選的checkbox值,如果要的話:

<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>GetCheckboxValues</title>
<scriptlanguage="javascript"type="text/javascript"src="../js/jquery-1.9.1.js"></script>
</head>

<body>

<inputtype="checkbox"name="ids[]"value="abc"/>
<inputtype="checkbox"name="ids[]"value="def"/>
<inputtype="checkbox"name="ids[]"value="ghi"/>

<inputid="btn"type="button"name="btn"value="submit"/>

<script>
jQuery(function(){
varbox={
getBoxVal:function(){
array=newArray();
$("input[name^='ids']").each(function(i){
if($(this).prop('checked')==true){
array.push($(this).val());
}
});alert(array);
returnarray;
},//endgetBoxVal
submitForm:function(){
arr=box.getBoxVal();
$("#btn").click(function(){
alert("arr:"+arr);
});
}//endsubmitForm
}//endbox
box.submitForm();
});
</script>
</body>
</html>