New Ribbon
用Canva設計超快超質感(第2版):商業設計、簡報、影片、網頁、電子書與AI應用最速技 AI繪圖工具 × AI視覺設計平台,從圖像生成到專業設計! 最強職場助攻!ChatGPT + AI 高效工作術 短影音制霸:打造TikTok、YT Shorts、IG Reels成功方程式與AI高效創作力 Canva+AI創意設計與品牌應用250招:從商業技巧、社群祕技到AI圖文影音特效 快快樂樂學威力導演2024.影音剪輯與AI精彩創作 Power Automate自動化超效率工作術 Midjourney AI圖像魔導書:搭配ChatGPT魔法加倍 超人氣FB+IG+LINE社群經營與行銷力(第二版) 翻倍效率工作術:不會就太可惜的 Excel × ChatGPT 自動化應用 AppInventor2零基礎入門班中文版(第六版) Python零基礎入門班(第四版) C語言學習聖經 用Canva設計超快超質感:平面、網頁、電子書、簡報、影片製作與AI繪圖最速技 PHP8/MySQL網頁程式設計自學聖經 翻倍效率工作術 - 不會就太可惜的Power BI大數據視覺圖表設計與分析(第三版) 社群經營一定要會的影音剪輯與動畫製作術 Notion高效管理250招:筆記×資料庫×團隊協作,數位生活與工作最佳幫手 Office 2021高效實用範例必修16課(附500分鐘影音教學/範例檔) Excel自學聖經(第二版):從完整入門到職場活用的技巧與實例大全

 

  程式樂活學 - 購物車範例

sam

sam
更新時間:2013/3/12 下午 10:22:59

 

請問老師:
程式樂活學 - 購物車範例:
wfcart.php中,
一開始的var $items = array();裡面要存放的是什麼?
我一開始以為是存放商品的id,
但看到function get_contents()的最後面$items[] = $item;,
$item存放了id、qty、price、info、subtotal,
而$item又存到$items[]內,
應該就變成$items[]=array($item=>array(id,qty,price,info,subtotal));
我不太懂這一整段的意思,可以幫我說明一下嗎?
謝謝!

文淵閣工作室

文淵閣工作室
更新時間:2013/3/13 上午 09:09:45

 

您好,
它是將加入購物車商品形成一個陣列,
再存入另一個陣列之中。
也就是母陣列裡有子陣列,
這個觀念與資料庫相同。

sam

sam
更新時間:2013/3/13 上午 10:14:31

 

請問老師:
1、母陣列裡有子陣列的意思是2維陣列嗎?
2、所以$items裡面存放的是$item['id']、$item['qty']、 $item['price']、$item['info']、$item['subtotal']這些資訊嗎?

sam

sam
更新時間:2013/3/14 上午 11:36:53

 

請問老師:
我假設$items裡面存放的是:
商品id:01,
購買數量:2個,
商品價格:100元,
商品資訊:商品名稱。
執行了下面的程式碼,跑出來的結果非常不合理,
一直卡在這邊,不知道哪邊的問題,
有看到您回答的另一篇:http://www.e-happy.com.tw/indexforum.asp?bid=10066
還有老師上面的回答我還是想不通,
不知老師可否用例子的方式詳細解說一下呢?
謝謝老師!

<?php

class wfCart {
var $total = 0;
var $itemcount = 0;
var $items = array(01,2,100,'商品名稱');
var $itemprices = array();
var $itemqtys = array();
var $iteminfo = array();

function cart() {} // constructor function

function get_contents()
{ // gets cart contents
$items = array();
$i=1;
foreach($this->items as $tmp_item){
    $item = FALSE;
echo "執行第 ".$i." 次<br />";
echo "\$tmp_item的值為:".$tmp_item."<br />";

$item['id'] = $tmp_item;
echo '$item[\'id\']:'.$item['id']."<br />";

            $item['qty'] = $this->itemqtys[$tmp_item];
echo "\$item['qty']:\$this->itemqtys[$tmp_item]<br />";

$item['price'] = $this->itemprices[$tmp_item];
echo "\$item['price']:\$this->itemprices[$tmp_item]<br />";

$item['info'] = $this->iteminfo[$tmp_item];
echo "\$item['info']:\$this->iteminfo[$tmp_item]<br />";

$item['subtotal'] = $item['qty'] * $item['price'];
echo "\$item['subtotal']:".$item['qty']."*". $item['price']."<br />";

echo "<hr />";
$i++;

            $items[] = $item;
}
return $items;
} // end of get_contents
}

$cart=new wfCart;
$cart->get_contents();
?>

文淵閣工作室

文淵閣工作室
更新時間:2013/3/15 下午 02:34:02

 

1.是,其實這就是多維陣列.
2.是的.但是請記得$items本身也是陣列,裡面每一個元素就是一筆資料.
3.你的使用類別方式有點問題,class的內容是為了要產生物件,所以我們在包含進來之後,必須用 new 的方式來新增物件。以這個範例來說, 我們就是用
$cart=new wfCart;
用wfCart類別來新增一個$cart物件,
物件產生了,就可以利用其中的方法來進行購物車的動作.

Carter

Carter
更新時間:2013/7/10 下午 03:59:28

 

請問範例中
function add_item($itemid,$qty=1,$price = FALSE, $info = FALSE)
{ // adds an item to cart
                if(!$price)
{
        $price = wf_get_price($itemid,$qty);
}

                if(!$info)
{
                        $info = wf_get_info($itemid);
}

if($this->itemqtys[$itemid] > 0)
                { // the item is already in the cart..
  // so we'll just increase the quantity
$this->itemqtys[$itemid] = $qty + $this->itemqtys[$itemid];
$this->_update_total();
} else {
$this->items[]=$itemid;
$this->itemqtys[$itemid] = $qty;
$this->itemprices[$itemid] = $price;
$this->iteminfo[$itemid] = $info;
}
$this->_update_total();
} // end of add_item

第一個參數 $itemid是否被限縮只能數字了

因為在function中用來指定陣列的值

但如果本身產品ID不是數字,就失效了




 

 

Re:程式樂活學 - 購物車範例

請輸入姓名。

已超出字元數目的最大值。


請輸入電子郵件。

格式無效。


請輸入內容。