###前提・実現したいこと
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/ツール等のバージョンなど)
より詳細な情報
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー