上一章我們講述了ecshop如何給商品增加新欄位-講座7 ,本章我們將結合ecshop一些常見的使用規則。來談談ecshop中是如何調用ajax的.ecshop二次開發的過程中。我們常常遇到使用ajax非同步出來的問題。
1:首先ecshop是如何定義ajax對象的。
ecshop中的ajax對象是在js/transport.js檔案中定義的。裡面是ajax對象檔案。聲明了一個var Ajax = Transport;對象和一個方法Ajax.call = Transport.run;
2:ecshop中ajax可以使用兩種方式傳遞資料.一種是get方式,一種是post方式.
Ajax.call( 'user.php?act=is_registered', 'username=' + username, registed_callback , 'GET', 'TEXT', true, true );
Ajax.call('user.php?act=return_to_cart', 'order_id=' + orderId, returnToCartResponse, 'POST', 'JSON');
3:ecshop中的 ajax可以是傳遞text資料,也可以是一個json對象。比如以下代碼
goods.quick = quick; goods.spec = spec_arr; goods.goods_id = goodsId; goods.number = number;
goods.parent = (typeof(parentId) == "undefined") ? 0 : parseInt(parentId);
Ajax.call('flow.php?step=add_to_cart', 'goods=' + goods.toJSONString(), addToCartResponse, 'POST', 'JSON');
裡面的goods就是對象.而且是靠json來傳遞的。返回的結果result也是對象.
4:ecshop ajax函數裡面.第三個參數就是回掉函數的名稱。比如以上代碼addToCartResponse 這個函數就是ajax處理結果的回呼函數.
5:在ecshop的php代碼中,一般是通過get或者post方式來接受函數。比如以下例子,如果接受的是對象。還需要用json資料格式來處理.比如以下
include_once('includes/cls_json.php'); $_POST['goods'] = json_str_iconv($_POST['goods']);
處理的返回結果,也需要是json格式發送給js
die($json->encode($result));
以上就是簡單的介紹了ecshop中ajax使用的簡單規則。