Ecshop首頁購物車數量調取問題


在page_header.lbi中調用SQL: 
<?php 
$sql = 'SELECT SUM(goods_number) AS number' . 
' FROM ' . $GLOBALS['ecs']->table('cart') . 
" WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'"; 
$row = $GLOBALS['db']->GetRow($sql); 
if ($row) 

$number = intval($row['number']); 

else 

$number = 0; 

echo $number; 
?> 
    但這樣會有一個問題,因為不是AJAX調用的,所有在首頁會有緩存,也就是導致首頁購物車中顯示的購物數量不准確,所以在index.php中關閉緩存,設置$smarty->caching = false; 前期用戶量小,這種方法沒有多大的問題。 
    使用AJAX調用也許會 解決這個問題,但是需要用post的方式來提交異步請求,如果用get的話會泄露用戶的信息,導致安全問題,有待進一步開發。 
    失敗的嘗試:將page_header.lbi中的內容放到index.dwt中,然后設置一個可編輯區域,在后台模板調用中調用購物車信息,把includes/lib_insert.php中的 cart_info方法 改一下,返回$number,而不是格式化好的字符串,可是自定義的區域無法正常顯示,沒惹你的區域可以,不知道 為何,糾結,有待進一步考證。 
     緩存問題已解決,問題出在lib_insert里的函數,最后返回的是一個鏈接,導致了兩個<a>標簽的嵌套,所以出了問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM