FrontPage / HTML+JS+CSS / jQuery-DragandDropPlugin / PHP+jsonの保存と読み込み

概要

AJAXでphp経由でJSONファイルをcsvで保存。

save_ajax.js

 // Save Action
 $("#btn-save").click(function(e) {
     console.log("--- Save Button .. ---");
     var ary_data = g_list_data;
     // 送るデータ形式はJSONでなければ、PHP側でエラーが出る.
     send_data = JSON.stringify(ary_data);
     console.log('send_data',send_data);
     // AJAX
     $.ajax({
         url: "./php/receive_json_save.php",
         type: "POST",
         //必要ないがサーバ側との整合のために明示しておいた方がよい。
         // contentType: "Content-Type: application/json; charset=UTF-8",   
         // 必要ないがサーバ側との整合のために明示しておいた方がよい。
         // dataType: 'json', //受信形式 
         data: send_data
     }).success(function(data, status, xhr) {
         console.log("--- << 通信成功!! >> ---");
         console.log("success!!");
         console.log("data =" + data);
         console.log("status =" + status);
         console.log("xhr =" + xhr);
     }).error(function(xhr, status, error) {
         // 通信失敗時の処理
         console.log("--- << 通信失敗!! >> ---");
         console.log("error !!");
         console.log("status =" + status);
         console.log("error =" + error);
     }).complete(function(xhr, status) {
         // 通信完了時の処理
         console.log("fin");
         console.log("status =" + status);
     });
 });

json_save.php

 <?php /* Version 2 */
 // TRUEの場合、デバッグを出力.
 $RESPONSE = TRUE;
 /******************************************/
 // DEBUG用のサブ関数
 /******************************************/
 function print_response($str){
   global $RESPONSE;
   if($RESPONSE){
     print_r($str."\n");
   }else{
 // print_r("false");
   }
 }
 /******************************************/
 // JSONファイルの読み込み
 // * JSONファイルは連想配列に変換
 /******************************************/
 $json_str = file_get_contents("php://input");
 # 第二引数がtrueの場合、連想配列になる
 $json_obj = json_decode($json_str, true);
 /******************************************/
 // ファイルオープン
 //  * ファイル名はYYYYMMDDHHMMSS.csv
 /******************************************/
 date_default_timezone_set('Asia/Tokyo');
 $SAVE_DIR = "./data/";
 $file_name = $SAVE_DIR.date("Ymd_His").".csv";
 print_response("\$file_name =".$file_name);
 // ファイルのオープン
 $fp = fopen($file_name, 'w');
 /******************************************/
 // 連想配列を整形し、csvに保存
 /******************************************/
 if($fp){
   foreach($json_obj as $i => $arrays){
     /* 方法 1 */
 // $field = array($arrays["number"], $arrays["name"], $arrays["comment"]);
 // $STATE_CSV = fputcsv($fp, $field);
     /* 方法 2 */
 // 連想配列のvalueをcsv形式に整形
 // * 連想配列の値を取得する方法 array_keys($ary), array_values($ary)
     $field = @implode(",", @array_values($arrays));
     $field = $i.",".$field."\n";
     $STATE_CSV = fputs($fp, $field);
 // デバッグログ出力
     print_response($field);
   }
 }else{
   print_response("Error: fopen()\n");
 }
 // ファイルクローズ
 $STATE_FCLOSE = fclose($fp);
 /******************************************/
 // エラー処理
 /******************************************/
 if(!$STATE_FCLOSE){
   print_response("Error: fclose($fp)\n");
 }
 if(!$STATE_CSV){
   print_response("Error: fputcsv()\n");
 }
 ?>

json_load.py

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-08-19 (水) 21:58:08 (847d)