質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1836閲覧

phpでJSON形式にエンコードした多次元配列をjavascriptでparseしたい。

gyouza

総合スコア12

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/01/24 01:43

編集2017/01/24 11:08

###前提・実現したいこと

phpでcsvの内容を読み込み、多次元配列にしたものを、javascriptで処理したいです。

1、まず、input_sample.phpで簡単なフォームを作成して、その内容をoutput_sample.php上でcsvデータに書き込めるようにしました。

2、そのcsvの内容をout_put.sample.phpで読み込み
多次元配列に格納したものをJSON形式にエンコードしました。

3,Json形式にエンコードされたものをJavascriptでparseしようとすると
エラーが発生します。

###発生している問題・エラーメッセージ

output_sample.php:10 Uncaught SyntaxError: Invalid or unexpected token 該当の箇所↓ var data_s = JSON.parse(‘[["yamazaki","1",""],["fujiwara","1",""],["fujiwara","1","fafafa"]]’)

###該当のソースコード

php

1 2<!--input_sample.php--> 3<html lang="ja"> 4<head> 5<meta charset="utf-8"> 6<title>input_sample</title> 7</head> 8<body> 9 <form method="post" action="output_sample.php"> 10 <div class="form-group item_name"> 11 <label for="user_name">user:</label> 12 <select name="user_name"> 13 <option value="maeda">前田</option> 14 <option value="takada">高田</option> 15 <option value="yamazaki">山崎</option> 16 <option value="fujiwara">藤原</option> 17 <option value="funaki">船木</option> 18 <option value="suzuki">鈴木</option> 19 </select> 20 </div> 21 <div class="form-group item_0"> 22 <label for="skill_point_0">point</label><input class="form-control" type="number" min="0" max="10" name="skill_point_0"> 23 </div> 24 <div class="form-group item_0"> 25 <label for="skill_qualitative_0">comment</label><textarea class="form-control" name="skill_qualitative_0"></textarea> 26 </div> 27 <input type="submit" name="" value="submit"> 28 </form> 29</body> 30 31</html> 32 33<!--input_sample.php 終了--> 34<!--output_sample.php--> 35<?php 36 37$user_name = $_POST["user_name"]; 38$skill_point_0 = $_POST["skill_point_0"]; 39$skill_qualitative_0 = $_POST["skill_qualitative_0"]; 40 41//データ書き込み 42$str = $user_name.",".$skill_point_0.",".$skill_qualitative_0; 43$file = fopen("data/data_sample.csv","a"); 44flock($file, LOCK_EX); 45fwrite($file, $str."\n"); 46flock($file, LOCK_UN); 47fclose($file); 48 49 50//データ読み込み 51$csv = fopen("data/data_sample.csv","r"); 52$dataList = []; 53while($array = fgetcsv($csv)){ 54 array_push($dataList, $array); 55} 56$json_data = json_encode($dataList); 57 58var_dump($json_data); 59?> 60 61 62html lang="ja"> 63<head> 64<meta charset="utf-8"> 65<title>output</title> 66</head> 67<body> 68<p id="text"></p> 69<script> 70//phpからjson形式でデータを受取り、parseする。 71var data_s = JSON.parse(<?php echo $json_data; ?>);//csvを1行ずつ配列にしてそれをまた配列にいれたものをphpでjsonencodeする。それをjson.parseしたが 72console.dir(data_s); 73</script> 74 75</body> 76</html> 77 78<!--output_sample.php終了--> 79

###試したこと
課題に対してアプローチしたことを記載してください
最初、file('data/data_sample.csv')で取得したデータを
まとめでjsonencordeしましたが、うまくいかなかったので
fgetcsvで一行づつデータを配列に格納する方法に変えてみましたがやっぱりうまくいきませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kunai

2017/01/24 01:52

<?php echo $json_data; ?>の、$json_dataはどこから来ているんでしょうか
gyouza

2017/01/24 11:09

失礼しました。貼り付け忘れで抜けてしまっていましたので追記しました。
guest

回答1

0

ベストアンサー

シングルクォートが、片方が「'」でもう片方が「`」になってますが大丈夫ですか?
ただ、それ以前にそのケースなら Parse せずにそのまま突っ込めると思います。

投稿2017/01/24 01:48

takeshi

総合スコア264

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gyouza

2017/01/24 01:52

ありがとうございます。お恥ずかしいです。全然わからずずっと考え込んでました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問