3

ローカル コンピューターから使用する HTML フォームを作成し、フォーム データを CSV ファイルに保存したいと考えています。

フォームが送信されるたびに、CSV ファイルに行が追加されます。

これはローカルで実行する必要があるため、PHP や JSP は使用できません。

どんな助けやアイデアも大歓迎です。

4

3 に答える 3

1

これはIEのみの質問(VBScript)だと思います。その場合、FileSystemObjectと呼ばれるActiveXObjectを使用できます。

JavaScript:

csv=[]; // Collect form values to this array.

function saveFile(csv){
    var fso,oStream;
    fso=new ActiveXObject('Scripting.FileSystemObject');
    oStream=fso.OpenTextFile('absolute_file_path',8,true);
    oStream.WriteLine(csv.join(','));
    oStream.Close();
    return;
}

function readFile(path){
    var fso,iStream,n,csv=[];
    fso=new ActiveXObject('Scripting.FileSystemObject');
    iStream=fso.OpenTextFile(path,1,true);
    for(n=0;!iStream.AtEndOfStream;n++){
        csv[n]=iStream.ReadLine().split(',');
    }
    iStream.Close();
    return csv;
}

FileSystemObjectの詳細については、MSDNを参照してください。

于 2012-07-08T08:57:30.800 に答える
0

@Ekkehard.Horner は、ブラウザーがローカル ファイル システムに直接書き込むことができないという点で正しいです。

ただし、ブラウザで JavaScript が有効になっている場合は、フォームを送信するときに、ブラウザ ウィンドウの別の部分を更新することができます。目的があれば、ブラウザに蓄積されたコンテンツをファイルにカット アンド ペーストできます。

これは私がまとめた簡単な例で、この概念をほんの少しの JavaScript といくつかの単純なフォーム要素で示しています。

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Capture Form Fields to CSV</title>
<script type="text/javascript">
<!--
function saveValues() {
    var frm = document.form1;

    var record = ""
            +       frm.text1.value
            + "," + frm.text2.value
            + "," + frm.text3.value
            + "\n";

    frm.textarea1.value += record;
}

function clearText() {
    document.form1.textarea1.value = "";
}
//-->
</script>
</head>
<body>
<h1>Capture Form Fields to CSV</h1>

<form name="form1" action="javascript:null">
  <p>
    F1: <input name="text1" type="text" value="field1" /><br />
    F2: <input name="text2" type="text" value="field2"/><br />
    F3: <input name="text3" type="text" value="field3"/>
  </p>
  <p>
    <input name="save" type="button" value="Save"
           onclick="saveValues(); return false"/>
    &#0160;
    <input name="clear" type="button" value="Clear"
           onclick="clearText(); return false"/>
  </p>
  <p>
    <i>Click 'Save' to add content</i><br />
    <textarea name="textarea1" rows="5" cols="40"></textarea>
  </p>
</form>

</body>
</html>

jQuery などの JavaScript ライブラリを使用して DHTML に飛び込む意思がある場合は、これよりもはるかに手の込んだものになることは間違いありません。このサイトが提供する素晴らしい編集モードを考えてみてください!

于 2012-07-07T23:14:31.687 に答える
0

古い質問ですが、しっかりした回答で更新したかったのです。

もう 1 つの方法は、スクリプトを実行するマシンでエミュレーターを使用することです。このようにして、サーバーでホストされている場合と同じ方法でフォーム処理スクリプトを作成できます。WAMP (またはMac 用のMAMP ) をチェックしてください。これは、システム上で PHP/MySQL を使用して Apache の自己完結型の実行中のインスタンスを作成します。次に、エミュレーターが指定するディレクトリ (通常は「www」または「htdocs」) にサイトのファイルを配置するだけで、PHP/MySQL を使用してサーバー上に直接あるかのように、ブラウザーを介してローカルで実行できます。

于 2014-03-05T18:19:50.927 に答える