我创建了一个HTML表单,该表单将在本地计算机上使用,并希望将表单数据保存在CSV文件中。
每次提交表单时,都应在CSV文件中添加一行。
这需要在本地运行,因此不能使用PHP或JSP。
感谢任何帮助或想法。
答案 0 :(得分: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;
}
您可以在MSDN中阅读有关FileSystemObject的更多信息。
答案 1 :(得分: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"/>
 
<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,那么你当然可以获得 更高级的粉丝。只需考虑这个网站提供的精彩编辑模式!
答案 2 :(得分:0)