jQueryのajax削除詳細

2667 ワード

まずhtmlインターフェースのコードを見ます。
<a href=「javascript:」  onclick=「delete_」order('')""crc=「imags/admin/delete-incon.png」border=「0」/>この1つの写真のリンクは削除を表します。あるインターフェースにジャンプするのではなく、クリックした時にclickイベントを出発します。
clickイベント実行delete_order()メソッド。この方法はパラメータ,注文番号を伝達する。このパラメータにより、対応する削除操作が実行されます。
下のjQueryコード:

<script>
    function delete_order(order_id){   
        confirm_ = confirm('This action will delete current order! Are you sure?');
        if(confirm_){
            $.ajax({
                type:"POST",
                url:'index.php/admin/order/del/'+order_id,
                success:function(msg){
                    //alert("test order");
                    //all delete is success,this can be execute
                    $("#tr_"+order_id).remove();
                }
            });
        }
    };
</script>
はまず一つのヒントボックスを出発して、削除を確認しますか?
確認すれば、ajax操作を実行します。
jQueryには$ajax()の方法があります。
ここには三つのパラメータがあります。一つはタイプです。この中ではPOSTを使います。
二つ目は住所で、これはとても肝心です。データをバックグラウンドサーバーに転送して実行します。
3番目のパラメータはコールバック関数で、削除が成功すれば実行されます。このときは、この削除されたレコードを削除するなど、いくつかの動作が実行されます。結合されたのは次の行のコードです。記録がないために、動的なidを付けて、削除時に使う根拠とします。ここで注意したいのは、バックグラウンドで実行されるすべての成功後に、このコールバック関数が実行される必要があります。
<tr id=「tr_>
以下は、バックグラウンドで実行されるコード

function del() {
    $order_id = $this->uri->segment(4);
    if ($order_id > 0) {
      $this->db->delete('billing', array('order_id' => $order_id));
      $this->db->delete('shipping_address', array('order_id' => $order_id));
      $this->db->delete('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を通じて完成します。