ecshop商城實現一個實用的購物車功能-優易軟體?

在購物流程頁中,修改商品數量後可以自動更新購物車裡的資料的功能,網上雖有少量方法,但是程式碼修改量比較大,而且考慮不是很周全,如禮品等的計算,數量框輸入非數字字元後的反應等等。優易軟體覺得沒有必要搞這麼麻煩,程式碼多了反而影響速度。直接利用原來的“更新購物車”按鈕和系統預設的判斷並進行少量修改就能很安全簡單的實現自動更新功能。思路就是用一小段JS程式碼來代替更新按鈕進行表單提交,在商品數量輸入框程式碼中新增一個失去焦點觸發上述JS的onblur事件,在flow.php的update_cart過程頁中修改跳轉,讓其自動跳回flow.php而不顯示修改資訊即可。以2.7.0版的default模版為例:1.備份並修改模版目錄下的flow.dwt檔案:(1)在之間新增一段JS,用於取代更新按鈕實現表單提交:

(2)在之間找到諸如以下程式碼:

onkeydown="showdiv(this)"/>

改成物件失去焦點時觸發事件:onblur="formSubmit()",如:

onblur="formSubmit()"/>

(3)再找到下面的程式碼:

把 這段程式碼刪掉,就等於把“更新購物車”這個按鈕刪掉了。如果想保留該按鈕,一定要把name="submit"中的submit改成其他名字,否則在firebug下會報“submit is not a function”錯誤。原因是

之間如果有name="submit"的元素話,在用document.getElementById("formCart").submit()提交表單的時候,該元素會和submit()方法發生混淆造 成該錯誤。

2.備份並修改根目錄下的flow.php檔案:找到以下程式碼:

elseif ($_REQUEST['step'] == 'update_cart')

show_message($_LANG['update_cart_notice'], $_LANG['back_to_cart'], 'flow.php');

整行註釋掉,在它上面新增一行程式碼:ecs_header("Location: flow.php
");用於實現更新購物車自動跳轉回詳細頁,如:elseif ($_REQUEST['step'] == 'update_cart')

{

/*------------------------------------------------------ */

//--

更新購物車

/*------------------------------------------------------ */

if (isset($_POST['goods_number']) && is_array($_POST['goods_number']))

{

flow_update_cart($_POST['goods_number']);

}

ecs_header("Location: flow.php
");

// show_message($_LANG['update_cart_notice'], $_LANG['back_to_cart'], 'flow.php');

exit;

}

完成!

軟體, 功能, 商城, 購物車, 優易,
相關問題答案