質問させていただきます。
入力画面→確認画面→CSV書き出しというフローになっている
サイトがあるのですが、書き出したCSVを入力画面に読み込ませると、
内容を後から編集できる仕様になっています。
ですが、下記の例のようにCSV内に改行が含まれていると入力画面に読み込ませた際に編集欄が空欄になってしまいます。
【例:CSV】
name:山田 太郎
age:26
introduction:初めまして。山田太郎と申します。
趣味は映画鑑賞で最近見た映画は○○○です。
※name、ageは問題ないがintroduction欄は空欄になってしまう。
プログラムを書いた社員がすでに退社しているため、社内に対応できる人間がいない状況です。
どのようにすれば解消できるのかご教授いただけますでしょうか。
入力画面.phpファイルのソースを記載させていただきますが
他に必要な情報があれば追記させていただきます。
お手数おかけしますがよろしくお願いします。
<p>当フォーマットですでに作成したCSVファイルをお持ちの方は、<br>こちらへデータをドラッグ&ドロップしてください。</p> <div id="drop" ondragover="onDragOver(event);"><img src="images/icon_upload.png" width="80" height="80" alt="アップロード" /></div> <p>ドラッグ&ドロップ後、テキストが表示されたら<br>送信ボタンを押してください。</p> <form method="post" action=""> <textarea id="disp" name="disp"></textarea> <input type="submit" name="submit" id="submit" value=" 送信 "> </form> <script type="text/javascript"> if (window.File) { // File APIに関する処理を記述 // window.alert("File APIが実装されてます。"); document.getElementById("drop").addEventListener("drop", onDrop, false); } else { window.alert("本ブラウザではFile APIが使えません"); } // Drop領域にドロップした際のファイルのプロパティ情報読み取り処理 function onDrop(event){ var files = event.dataTransfer.files; var disp = document.getElementById("disp"); disp.innerHTML =""; // ファイルの配列から1つずつファイルを選択 for(var i=0; i< files.length; i++){ var f = files[i]; // (1)FileReaderオブジェクトの生成 var reader = new FileReader(); // (2)画像ファイルかテキストファイルかを判定 if (!f.type.match('image.*') && !f.type.match('text.*')) { // alert("テキストファイルとCSV以外は表示できません。"); // continue; } // (3)エラー発生時の処理 reader.onerror = function (evt) { disp.innerHTML = "読み取り時にエラーが発生しました。"; } // (5)テキストファイルの場合の処理 if (f.type.match('text.*')) { // ファイル読取が完了した際に呼ばれる処理 reader.onload = function (evt) { // FileReaderが取得したテキストをそのままdivタグに出力 disp.innerHTML = reader.result; } // readAsTextメソッドでファイルの内容を取得 reader.readAsText(f, 'utf-8'); } else{ // ファイル読取が完了した際に呼ばれる処理 reader.onload = function (evt) { // FileReaderが取得したテキストをそのままdivタグに出力 disp.innerHTML = reader.result; } // readAsTextメソッドでファイルの内容を取得 reader.readAsText(f, 'shift-jis'); } } // (6)ブラウザ上でファイルを展開する挙動を抑止 event.preventDefault(); } function onDragOver(event){ // (6)ブラウザ上でファイルを展開する挙動を抑止 event.preventDefault(); } </script> </section> <script type="text/javascript"> $(document).ready(function(){ $('#submit').click(function(){ var dat = $('#disp').text(); var splt = dat.split("\n"); var splt2 = splt[0].split(","); //var leng = $('#disp2').text(splt.length); for(i=0; i<splt.length; i++){ $('#disp2').html(splt[i]); } // $('#disp2').html('<input type="text" name="'+splt2[0]+'" value="'+splt2[1]+'">'); //←基本形 // window.close(); }); }); </script> <!--<?php echo $_POST['disp']; ?>--> <div id="disp2"></div> </div> </div>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/25 02:22