Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript或VBscript将本地Html表单数据导出到CSV_Javascript_Html_Csv_Vbscript - Fatal编程技术网

使用Javascript或VBscript将本地Html表单数据导出到CSV

使用Javascript或VBscript将本地Html表单数据导出到CSV,javascript,html,csv,vbscript,Javascript,Html,Csv,Vbscript,我已经创建了一个HTML表单,将从本地计算机使用,并希望表单数据保存在CSV文件中 每次提交表单时,应在CSV文件中添加一行 这需要在本地运行,因此不能使用PHP或JSP 感谢您的任何帮助或想法。@Ekkehard.Horner是正确的,浏览器不能直接写入本地文件系统 但是,在提交表单时,如果浏览器已启用JavaScript,则当然可以更新浏览器窗口的另一部分。如果这是您的目标,则可以将浏览器中累积的内容剪切并粘贴到文件中 下面是一个简单的示例,我用一点JavaScript和几个简单的表单元素来

我已经创建了一个HTML表单,将从本地计算机使用,并希望表单数据保存在CSV文件中

每次提交表单时,应在CSV文件中添加一行

这需要在本地运行,因此不能使用PHP或JSP


感谢您的任何帮助或想法。

@Ekkehard.Horner是正确的,浏览器不能直接写入本地文件系统

但是,在提交表单时,如果浏览器已启用JavaScript,则当然可以更新浏览器窗口的另一部分。如果这是您的目标,则可以将浏览器中累积的内容剪切并粘贴到文件中

下面是一个简单的示例,我用一点JavaScript和几个简单的表单元素来说明这个概念:


将表单字段捕获到CSV
将表单字段捕获到CSV

F1:
F2:
F3:

 

单击“保存”添加内容


如果您愿意使用jQuery之类的JavaScript库深入DHTML,您肯定会比这更喜欢。想想这个网站提供的编辑模式吧! 我假设这是一个仅限于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的更多信息

这是一个老问题,但我想用一个可靠的回答来更新:


另一种方法是在运行脚本的机器上使用模拟器。通过这种方式,您可以像在服务器上托管表单处理脚本一样构建表单处理脚本。检查一下(或Mac),它将在您的系统上创建一个包含PHP/MySQL的Apache自包含运行实例。然后,您只需将站点的文件放入emulator指定的目录(通常为“www”或“htdocs”),然后您就可以通过浏览器本地运行它,就像它直接在服务器上运行PHP/MySQL一样。

除非您绕过(合理的)安全限制,否则浏览器无法访问本地文件系统。除非您的“应用程序”严格来说是“一个用户,单个进程”,否则写入.csv是有风险的。因此,如果没有更多关于你想要实现什么的细节,答案是:甚至不要尝试。我想要一种由许多人完成的调查,并将结果直接保存到CSV文件中。它是一台工作计算机,所以不能使用excel表格或类似的东西。非常感谢您的指点。非常感谢David。这当然有帮助,但是目标是直接收集CSV文件中提供的信息。这需要多个用户一次访问它。可以执行任何操作,以便多个用户可以一次访问和保存它。它需要在没有太多插件的普通浏览器上完成。JavaScript已启用。Hmmm,这是一个非常不寻常的请求@Teemu为您提供了MSIE和
FileSystemObject
的一种可能的前进方式。当然,您需要将CSV文件放到网络上。由于这是一种多用户情况,您需要创建一个锁,以便用户可以获得对CSV文件的临时独占写入访问权
CreateFolder()
是原子的,因此您可以围绕它包装一个锁例程。请参阅我的帖子,以获取将Microsoft的完整WSH/VBScript参考下载为Windows帮助文件的指针。@DavidRR感谢您提供了一个非常有趣的链接(script56.chm)。现在我不必用我的慢速连接浏览MSDN。。。