2016-04-15 18 views
0

私は次のコードを持っています。codepen http://codepen.io/Jacqueline34/pen/GZxxRVを参照してください。私のコードは問題ですが、修正する方法がわかります。私はlocalstorageにフォーム入力を正しく保存することができますが、Excelファイルを開くとファイルには[オブジェクト] [オブジェクト]などが表示されます。どのようにしてexcelファイルのローカルストレージデータを出力するようにコードを変更できますか?これは私の頭が壊れています。 :)JavaScript形式の入力をCSVファイル

$("#save").click(function(e) {       
    e.preventDefault();         
    localStorage.setItem("user_input", "set");   
    var data = $("#contact-form").serializeArray();  
     $.each(data, function(i, obj) {     
      localStorage.setItem(obj.name, obj.value); 
     }); 
     $("#message").html("<p style='color:red'><strong>Thank you. Your information has been saved</strong></p><br/>"); 
}); 

    if (localStorage.getItem("user_input") == "set") {   
    var data = $("#contact-form").serializeArray();    
     $.each(data, function(i, obj) { 
      $("[name='" + obj.name + "']").val(localStorage.getItem(obj.name)); 
     });    
    } 

    $(function exportData() { 
    var data = $("#contact-form").serializeArray();       
     $.each(data, function(i, obj) { 
     data += $("[name='" + i + "']") + "," + $("[name='" + obj.name + "']").val(); 
     }); 
     data += '\r\n';              

     var exportLink = document.createElement('a');         
     exportLink.setAttribute('href', 'data:text/csv;base64,' + window.btoa(data)); 
     exportLink.appendChild(document.createTextNode('data.csv'));      
     document.getElementById('results').appendChild(exportLink);      
}); 

答えて

0

オブジェクトの内容ではなく、オブジェクトを書き留めているようです。

私は少しあなたのhtmlを変更し、ボタンを作りました:

<button id="next" type="button" class="btn btn-default" onclick="exportData()">Export</button> 

私はあなたのコードから元

$(function exportData() { } 

を削除し、外の範囲を新しいものを置きます:

$(document).ready(function() { } 

私はt彼の:

function exportData() { 

    var data = $("#contact-form").serializeArray(); 
    var out = '';  

    for (var i = 0; i < data.length; i++) { 
     out += data[i].name + "," + data[i].value; 
     out += '\r\n'; 
    } 

    var blob = new Blob([out], { type: 'text/csv;charset=utf-8;'}); 
    if (navigator.msSaveBlob) { 
     navigator.msSaveBlob(blob, 'export.csv'); 
    } else { 
     var link = document.createElement("a"); 
     if (link.download !== undefined) { // feature detection 
      var url = URL.createObjectURL(blob); 
      link.setAttribute("href", url); 
      link.setAttribute("download", 'export.csv'); 
      link.style.visibility = 'hidden'; 
      document.body.appendChild(link); 
      link.click(); 
     } 
    }  
} 

この機能は、現在、それ自体の上に立っています。 私はそれが助けてくれることを願っています...

+0

ボルタボイ - 私は月が喜ぶ、それは今動作します。私の質問にお答えしていただきありがとうございます。はい、私はオブジェクトをダウンロードしていましたが、私はそれを過ぎて私の道を見ることができませんでした。 :) – Jacqueline

関連する問題