仅使用HTML存储表单中的数据

我想创build一个表单(将由用户填充),并将数据存储在Excel样式表中,而不使用PHP只是HTML,这是可能的吗?

我不想存储数据的数据库。

我试图使用谷歌文档,但它不是很好,因为validation信息是根据浏览器语言生成的。

不,HTML页面不能写入文件。 你需要一个服务器来做到这一点。

您可以做的最好的方法是在textarea中生成CSV数据,然后用户可以复制并粘贴到本地文件,然后将其加载到Excel中。

“不能从HTML写入文件”的不合格回应是不准确的 。 虽然您可能需要在HTML中添加一些“隐藏”字段(为了简化仅导出所请求的数据而不是导出问题或其他文本),但完全可以这样做。 我已经在下面的代码中完成了 – 我使用的是JavaScript。 不需要服务器,不需要数据库,不需要PHP。

下面是JSFiddle页面的代码和链接,您可以在其中看到它:

<!DOCTYPE html> <html> <head> <script type="text/javascript"> function fillHidTable(){ var htqf; //-- hidden field var rf; //-- retrieved field for ( var i = 1; i < 5; i++ ) { rf = "htqf"+i; document.getElementById(rf).innerHTML = document.getElementById("Q"+i+"CALC").value; } tableToExcel('hidTable', 'Analysis Results'); } var tableToExcel = (function() { var uri = 'data:application/vnd.ms-excel;base64,' , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>' , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) } , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } return function(table, name) { if (!table.nodeType) table = document.getElementById(table) var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML} window.location.href = uri + base64(format(template, ctx)) } })() </script> <title>HTML Form Data to Excel</title> <style type="text/css" media="screen"> .divCenMid{font-family:Arial,sans-serif;font-size:14pt;font-style:normal;font-weight:700;text-align:center;vertical-align:middle;margin:0;} .allbdrCenMid{border:.75pt solid windowtext;color:#000;font-family:Arial,sans-serif;font-size:10pt;font-style:normal;font-weight:400;text-align:center;vertical-align:middle;margin:0;} .allbdrCenTop{border:.75pt solid windowtext;color:#000;font-family:Arial,sans-serif;font-size:10pt;font-style:normal;font-weight:400;text-align:center;vertical-align:top;margin:0;} .allbdrLtMid{border:.75pt solid windowtext;color:#000;font-family:Arial,sans-serif;font-size:10pt;font-style:normal;font-weight:400;text-align:left;vertical-align:middle;margin:0;} .allbdrLtTop{border:.75pt solid windowtext;color:#000;font-family:Arial,sans-serif;font-size:10pt;font-style:normal;font-weight:400;text-align:left;vertical-align:top;margin:0;} </style> </head> <body> <table width= "565px" cellspacing="0" cellpadding="0" style="border-spacing:0;" id="QMSTable"> <col width="25px"/> <col width="120px"/> <col width="360px"/> <col width="60px"/> <tr> <td class="divCenMid" colspan = "4"> QMS Assessment</td> </tr> <tr> <td class="allbdrCenMid"> No</td> <td class="allbdrCenMid"> Criteria</td> <td class="allbdrLtMid"> Question</td> <td class="allbdrCenMid"> Score</td> </tr> <tr> <td class="allbdrCenTop"> Q1</td> <td class="allbdrLtTop"> Quality Unit Independency</td> <td class="allbdrLtTop"> Do you have the Quality Unit?</td> <td class="allbdrCenMid"> <input id="Q1CALC" type="text" value="" class="nobdrCenMid" style="overflow:hidden; width:93% " name="Q1CALC"/> </td> </tr> <tr> <td class="allbdrCenTop"> Q2</td> <td class="allbdrLtTop"> Apply PICS GMP</td> <td class="allbdrLtTop"> Which GMP regulation do you use?</td> <td class="allbdrCenMid"> <input id="Q2CALC" type="text" value="" class="nobdrCenMid" style="overflow:hidden; width:93% " name="Q2CALC"/> </td> </tr> <tr> <td class="allbdrCenTop"> Q3</td> <td class="allbdrLtTop"> Deviation or Non-conformance</td> <td class="allbdrLtTop"> Do you have a deviation or non-conformance procedure?</td> <td class="allbdrCenMid"> <input id="Q3CALC" type="text" value="" class="nobdrCenMid" style="overflow:hidden; width:93% " name="Q3CALC"/> </td> </tr> <tr> <td class="allbdrCenTop"> Q4</td> <td class="allbdrLtTop"> Complaint</td> <td class="allbdrLtTop"> Do you have a customer complaint procedure?</td> <td class="allbdrCenMid"> <input id="Q4CALC" type="text" value="" class="nobdrCenMid" style="overflow:hidden; width:93% " name="Q4CALC"/> </td> </tr> </table> <div id="hidTable" style="display: none"> <table id="testTable"> <caption>Supplier Risk Analysis</caption> <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup> <thead> <tr> <th>No.</th> <th>Question</th> <th>Score</th> </tr> </thead> <tbody> <tr> <td>Q1</td> <td>Do you have the Quality Unit?</td> <td id="htqf1">-</td> </tr> <tr> <td>Q2</td> <td>Apply PICS GMP?</td> <td id="htqf2">-</td> </tr> <tr> <td>Q3</td> <td>Do you have a deviation or non-conformance procedure?</td> <td id="htqf3">-</td> </tr> <tr> <td>Q4</td> <td>Do you have a customer complaint procedure?</td> <td id="htqf4">-</td> </tr> </tbody> </table> </div> <input type="button" onclick="fillHidTable()" value="Export Data to Excel"> </body> </html> 

这里是JSFiddle链接: https ://jsfiddle.net/MitchinThailand/LV9vr/

如果你想更多的细节随时holler。

由于一些安全原因,无法将html表单数据保存到使用javascript的文件中,所以对于我的解决scheme,我只是使用TCPDF。

您可以使用下载属性生成一个data: URL:

 <a download="test.csv" href="data:text/csv,foo,bar,baz"> 

您需要使用JavaScript从表单数据构build此类URL,并在文档中插入/更新适当的链接。

要做你想做的事情,简直不可能没有PHP或一些先进的HTML5本地存储。

我已经通过使用简单的PHP脚本将表单数据保存到.txt文件,然后在Excel中打开生成的.txt文件并使用文本到列的function来完成此操作。

我有一个HTML表单,收集人们input他们的电子邮件地址的字段。 我希望表单将电子邮件地址发布到文本文件。 请帮忙! 将奖励最高分的人将正确回答我! 2年前报告滥用行为额外细节请粘贴整个代码来做到这一点! 2年前

形成:

 <form method="post" action="nameofyourscripthere.php"> Name: <input type="text" name="name" id="name" /> Email: <input type="text" name="email" id="email" /> <input type="submit" name="submit" value="Send Form" /> </form> 

PHP:

用这段代码创build一个保存为.php的新页面。 所有你需要的是在服务器上的这个表单和PHP脚本工作:)

 <?php // Get the name they entered in the form // We'll be naming the file this $file = $_POST['name']; // Get the email from the form $email = $_POST['email']; // We want the file to be a text file right? $ex = ".txt"; // Try to open a file named $file$ex (johndoe.txt for example) // Because this file doesn't exist yet the server creates it $write = fopen("$file$ex","w"); // Now open the file up again but this time save the email in it fwrite($write,$email); // MAKE SURE you close the file!!! fclose($write); // The folder that this script is in on the server is where the file we just made was saved // We can 'rename' it to another folder // The folder on the server we want to move it to $data = "../emails/"; // Now put it all together: This example goes out of the folder we're in and into the folder 'emails' // The new 'name' would be this now (../emails/johndoe.txt): So now the file is moved to where we want for storage rename ("$file","$data$file$ex"); // The script is done, send the user to another page (Just read the address below and you'll get it) // Its just an example fyi change to what you want header('Location: http://YourWebsiteNameHere.com/contactFo… exit; ?>