亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

direktori cari
歡迎 目錄 快速參考圖 基本信息 服務(wù)器要求 許可協(xié)議 變更記錄 關(guān)于CodeIgniter 安裝 下載 CodeIgniter 安裝指導(dǎo) 從老版本升級 疑難解答 介紹 開始 CodeIgniter 是什么? CodeIgniter 速記表 支持特性 應(yīng)用程序流程圖 模型-視圖-控制器 架構(gòu)目標(biāo) 教程 內(nèi)容提要 加載靜態(tài)內(nèi)容 創(chuàng)建新聞條目 讀取新聞條目 結(jié)束語 常規(guī)主題 CodeIgniter URL 控制器 保留字 視圖 模型 輔助函數(shù) 使用 CodeIgniter 類庫 創(chuàng)建你自己的類庫 使用 CodeIgniter 適配器 創(chuàng)建適配器 創(chuàng)建核心系統(tǒng)類 鉤子 - 擴展框架的核心 自動裝載資源 公共函數(shù) URI 路由 錯誤處理 緩存 調(diào)試應(yīng)用程序 以CLI方式運行 管理應(yīng)用程序 處理多環(huán)境 PHP替代語法 安全 開發(fā)規(guī)范 類庫參考 基準(zhǔn)測試類 日歷類 購物車類 配置類 Email 類 加密類 文件上傳類 表單驗證詳解 FTP 類 圖像處理類 輸入類 Javascript 類 語言類 裝載類 遷移類 輸出類 分頁類 模板解析器類 安全類 Session 類 HTML 表格類 引用通告類 排版類 單元測試類 URI 類 User-Agent 類 表單驗證 XML-RPC 和 XML-RPC 服務(wù)器 Zip 編碼類 緩存適配器 適配器參考 適配器 數(shù)據(jù)庫類 Active Record 類 數(shù)據(jù)庫緩存類 自定義函數(shù)調(diào)用 數(shù)據(jù)庫配置 連接你的數(shù)據(jù)庫 數(shù)據(jù)庫快速入門例子代碼 字段數(shù)據(jù) 數(shù)據(jù)庫維護類 查詢輔助函數(shù) 數(shù)據(jù)庫類 查詢 生成查詢記錄集 表數(shù)據(jù) 事務(wù) 數(shù)據(jù)庫工具類 JavaScript類 輔助函數(shù)參考 數(shù)組輔助函數(shù) CAPTCHA 輔助函數(shù) Cookie Helper 日期輔助函數(shù) 目錄輔助函數(shù) 下載輔助函數(shù) Email 輔助函數(shù) 文件輔助函數(shù) 表單輔助函數(shù) HTML輔助函數(shù) Inflector 輔助函數(shù) 語言輔助函數(shù) 數(shù)字輔助函數(shù) 路徑輔助函數(shù) 安全輔助函數(shù) 表情輔助函數(shù) 字符串輔助函數(shù) 文本輔助函數(shù) 排版輔助函數(shù) URL 輔助函數(shù) XML 輔助函數(shù)
watak

CodeIgniter 用戶指南 版本 2.1.0

編輯文檔、查看近期更改請 登錄 或 注冊  找回密碼
查看原文

購物車類

購物車類允許項目被添加到session中,session在用戶瀏覽你的網(wǎng)站期間都保持有效狀態(tài)。這些項目能夠以標(biāo)準(zhǔn)的 "購物車" 格式被檢索和顯示,并允許用戶更新數(shù)量或者從購物車中移除項目。

請注意購物車類只提供核心的"購物車"功能。它不提供配送、信用卡授權(quán)或者其它處理組件。

初始化購物車類

重要:購物車類利用 CodeIgniter 的 Session 類把購物車信息保存到數(shù)據(jù)庫中,所以在使用購物車類之前,你必須根據(jù) Session 類文檔中的說明來創(chuàng)建數(shù)據(jù)庫表,并且在 application/config/config.php 文件中把 Session 相關(guān)參數(shù)設(shè)置為使用數(shù)據(jù)庫。

為了在你的控制器構(gòu)造函數(shù)中初始化購物車類,請使用 $this->load->library 函數(shù):

$this->load->library('cart');

一旦加載,就可以通過調(diào)用 $this->cart 來使用購物車對象了。

說明: 購物車類會自動加載和初始化Session類,因此除非你在別處要用到session,否則你不需要再次加載Session類。

將一個項目添加到購物車

要添加項目到購物車,只需將一個包含了商品信息的數(shù)組傳遞給 $this->cart->insert() 函數(shù)即可,就像下面這樣:

$data = array(
???????????????'id'????? => 'sku_123ABC',
???????????????'qty'???? => 1,
???????????????'price'?? => 39.95,
???????????????'name'??? => 'T-Shirt',
???????????????'options' => array('Size' => 'L', 'Color' => 'Red')
????????????);

$this->cart->insert($data);

重要說明: 上面的前四個數(shù)組索引 (id, qty, pricename) 是 必需的。 如果缺少其中的任何一個,數(shù)據(jù)將不會被保存到購物車中。第5個索引 (options) 是可選的。當(dāng)你的商品包含一些相關(guān)的選項信息時,你就可以使用它。正如上面所顯示的那樣,請使用一個數(shù)組來保存選項信息。注意:$data['price'] 的值必須大于0

五個保留的索引分別是:

  • id - 你的商店里的每件商品都必須有一個唯一的標(biāo)識符(identifier)。典型的標(biāo)識符是 "sku"(譯者注:庫存量單位) 或者其它類似的標(biāo)識符。
  • qty - 購買的數(shù)量(quantity)。
  • price - 商品的價格(price)。
  • name - 商品的名稱(name)。
  • options - 標(biāo)識商品的任何附加屬性。必須通過數(shù)組來傳遞。

除以上五個索引外,還有兩個保留字:rowidsubtotal。它們是購物車類內(nèi)部使用的,因此,往購物車中插入數(shù)據(jù)時,請不要使用這些詞作為索引。

你的數(shù)組可能包含附加的數(shù)據(jù)。你的數(shù)組中包含的所有數(shù)據(jù)都會被存儲到session中。然而,最好的方式是標(biāo)準(zhǔn)化你所有商品的數(shù)據(jù),這樣更方便你在表格中顯示它們。

The insert() method will return the $rowid if you successfully insert a single item.

將多個項目添加到購物車

通過下面這種多維數(shù)組的方式,可以一次性添加多個產(chǎn)品到購物車中。當(dāng)你希望允許用戶選擇同一頁面中的多個項目時,這就非常有用了。

$data = array(
???????????????array(
???????????????????????'id'????? => 'sku_123ABC',
???????????????????????'qty'???? => 1,
???????????????????????'price'?? => 39.95,
???????????????????????'name'??? => 'T-Shirt',
???????????????????????'options' => array('Size' => 'L', 'Color' => 'Red')
????????????????????),
???????????????array(
???????????????????????'id'????? => 'sku_567ZYX',
???????????????????????'qty'???? => 1,
???????????????????????'price'?? => 9.95,
???????????????????????'name'??? => 'Coffee Mug'
????????????????????),
???????????????array(
???????????????????????'id'????? => 'sku_965QRS',
???????????????????????'qty'???? => 1,
???????????????????????'price'?? => 29.95,
???????????????????????'name'??? => 'Shot Glass'
????????????????????)
????????????);

$this->cart->insert($data);

顯示購物車

為了顯示購物車的數(shù)據(jù),你得創(chuàng)建一個 視圖文件,它的代碼類似于下面這個。

請注意這個范例使用了表單輔助函數(shù).

更新購物車

為了更新購物車中的信息,你必須將一個包含了 Row ID 和數(shù)量(quantity)的數(shù)組傳遞給 $this->cart->update() 函數(shù):

說明: 如果數(shù)量被設(shè)置為 0 ,那么購物車中對應(yīng)的項目會被移除。

$data = array(
???????????????'rowid' => 'b99ccdf16028f015540f341130b6d8ec',
???????????????'qty'?? => 3
????????????);

$this->cart->update($data);

// 或者是一個多維數(shù)組

$data = array(
???????????????array(
???????????????????????'rowid'?? => 'b99ccdf16028f015540f341130b6d8ec',
???????????????????????'qty'???? => 3
????????????????????),
???????????????array(
???????????????????????'rowid'?? => 'xw82g9q3r495893iajdh473990rikw23',
???????????????????????'qty'???? => 4
????????????????????),
???????????????array(
???????????????????????'rowid'?? => 'fh4kdkkkaoe30njgoe92rkdkkobec333',
???????????????????????'qty'???? => 2
????????????????????)
????????????);

$this->cart->update($data);

什么是 Row ID?? 當(dāng)一個項目被添加到購物車時,程序所生成的那個唯一的標(biāo)識符就是row ID。創(chuàng)建唯一ID的理由是,當(dāng)購物車中相同的商品有不同的選項時,購物車就能夠?qū)λ鼈冞M行管理。

比如說,有人購買了兩件相同的T-shirt (相同的商品ID),但是尺寸不同。商品ID(以及其它屬性)都會完全一樣,因為它們是相同的T-shirt。它們唯一的差別就是尺寸不同。因此購物車必須想辦法來區(qū)分它們,這樣才能獨立地管理這兩件尺寸不同的T-shirt。而基于商品ID和其它相關(guān)選項信息來創(chuàng)建一個唯一的 "row ID" 就能解決這個問題。

在幾乎所有情況下,更新購物車都將是用戶通過 "查看購物車" 頁面來實現(xiàn)的,因此對開發(fā)者來說,不必太擔(dān)心"row ID",只要保證你的 "查看購物車" 頁面中的一個隱藏表單字段包含了這個信息,并且確保它能被傳遞給表單提交時所調(diào)用的更新函數(shù)就行了。請仔細分析上面的 "查看購物車" 頁面的結(jié)構(gòu)以獲取更多信息。

?

函數(shù)參考

$this->cart->insert();

允許你將項目添加到購物車中,就像上面所描述的那樣。

$this->cart->update();

允許你更新購物車中的項目,就像上面所描述的那樣。

$this->cart->total();

顯示購物車中的總計金額。

$this->cart->total_items();

顯示購物車中總共的項目數(shù)量。

$this->cart->contents();

返回一個包含了購物車中所有信息的數(shù)組。

$this->cart->has_options(rowid);

如果購物車中特定的列包含選項信息,本函數(shù)會返回 TRUE(布爾值)。本函數(shù)被設(shè)計為與 $this->cart->contents() 一起在循環(huán)中使用,因此就像上面的 顯示購物車 范例所顯示的那樣,你必須把 rowid 傳遞給這個函數(shù)。

$this->cart->product_options(rowid);

以數(shù)組的形式返回特定商品的選項信息。本函數(shù)被設(shè)計為與 $this->cart->contents() 一起在循環(huán)中使用,因此就像上面的 顯示購物車 范例所顯示的那樣,你必須把 rowid 傳遞給這個函數(shù)。

$this->cart->destroy();

允許你銷毀購物車。這個函數(shù)一般是在你處理完用戶訂單后調(diào)用。

?

翻譯貢獻者: Hex, yinzhili, yz20sui
最后修改: 2012-02-06 00:17:41
Artikel sebelumnya: Artikel seterusnya: