先看html介面的程式碼:
這個一個圖片鏈接,表示刪除。它不是跳到某個介面,而是點擊時出發click事件。
click事件執行delete_order()方法。這個方法中傳遞了一個參數,訂單號。透過這個參數,可以去執行對應的刪除操作。
下面jQuery程式碼:
程式碼如下:
<script><><script>< > function delete_order(order_id){ <BR> confirm_ = confirm('This action will delete current ) $.ajax({<BR> type: "POST",<BR> url:'index.php/admin/order/del/' order_id,<BR> //alert("test order");<BR> /all delete is success,this can be execute<BR> $("#tr 🎜> });<BR> }<BR> };<BR></ script><BR><BR><BR>先出發一個提示框,確認刪除嗎? </script>
如果確認的話,執行ajax操作。
在jQuery中,有一個$.ajax()的方法。
這裡有三個參數,一個是型,這裡面用的是POST,
第二個是位址,這個很關鍵,它負責將數據,傳送到後台伺服器去執行。
第三個參數是一個回呼函數,如果執行刪除成功,就會執行的操作。這時候,就可以執行一些動作,例如將這條已刪除的記錄,移除。結合的是下面的這行程式碼。為沒筆記錄,賦予一個動態的id,作為刪除時所使用的依據。這裡要注意的是,在必須後台執行的所有都成功之後,才會執行這個回呼函數。
下面的是後台執行的程式碼
程式碼如下:
del () {
$order_id = $this->uri->segment(4);
if ($order_id > 0) {
$ 'order_id' => $order_id));
$this->db->delete('shipping_address', array('order_id' => $order_id));
'order_products', array('order_id' => $order_id));
$this->db->delete('comments', array('order_id' => $order_id));
> $this->db->delete($this->tbname, array('id' => $order_id));
}
這個後台控制器中的一個方法,透過$this->uri->segment();方法取得參數,將參數賦值給變數order_id。
然後,就可以在背景執行對應的刪除操作了。如果刪除都成功的話,就會有一個預設的訊息傳遞給success方法。
今天遇到的success方法執行不成功的原因,就是因為有一個刪除操作執行不成功,那個隱藏的訊息傳遞不到success方法。為什麼不成功呢?因為$this->db->delete('shipping_address', array('order_id' => $order_id));與資料庫中的表名不對應,大概是被別人修改了。
後來修正之後,success方法成功執行。
這是一個簡單的ajax實例。可以簡單的說明ajax的作用。不需要刷新介面,直接偷偷的去後台進行操作即可,操作成功後,還可以執行對應的動作,透過jQuery來完成