1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
$("button#update").click(function() { // 多重送信を防ぐため通信完了までボタンをdisableにする var button = $(this); button.attr("disabled", true); // 各フィールドから値を取得してJSONデータを作成 var data = { name: $("#name").val(), age: parseInt($("#age").val()) }; // 通信実行 $.ajax({ type:"post", // method = "POST" url:"/path/to/post", // POST送信先のURL data:JSON.stringify(data), // JSONデータ本体 contentType: 'application/json', // リクエストの Content-Type dataType: "json", // レスポンスをJSONとしてパースする success: function(json_data) { // 200 OK時 // JSON Arrayの先頭が成功フラグ、失敗の場合2番目がエラーメッセージ if (!json_data[0]) { // サーバが失敗を返した場合 alert("Transaction error. " + json_data[1]); return; } // 成功時処理 location.reload(); }, error: function() { // HTTPエラー時 alert("Server Error. Pleasy try again later."); }, complete: function() { // 成功・失敗に関わらず通信が終了した際の処理 button.attr("disabled", false); // ボタンを再び enableにする } }); }); |
受け取り側
1 2 3 4 5 6 |
<?php $json_string = file_get_contents('php://input'); echo $json_string; $obj = json_decode($json_string); var_dump($obj); |