【CakePHP】ajaxでpostする方法(2)

前回ajaxを使ってpostする方法について書きました。

【jquery】ajaxでpostする方法 - kento0824jp’s diary

こちらで紹介した方法は jQuery.post()というメソッドを使うものでしたが、
通信成功時と失敗時で処理をわけられないというデメリットが有りました。

今回は jQuery.ajax()というメソッドの使い方を紹介します。
こちらは成功、失敗で処理を分岐させることが出来ます。

$.ajax({
    url: postUrl,
    type: "POST",
    data: { data_id : id, data_name1: data1, data_name2: data_name2 },
    dataType: "text",//サーバーから返ってきた内容のデータ方式(他にはhtml,jsonなど)
    success : function(response){
    //通信成功時 php側でechoした内容がresponseに入っている
    },
    error: function(){
        //通信失敗時の処理
        alert('通信失敗');
    }
});

送信した内容をコントローラで扱う時は次のように書きます
今回は'edit’メソッドに送ることにします。

<?php
public function edit($data_id, $data_1 $sata_1){
        $this->Model->id = $id;

        if ($this->request->is(['ajax'])) {
            if ($this->Model->save($this->request->data)) {
                echo "失敗です";
            } else {
                echo "失敗です";
            }
        }
    }
}