gpt4 book ai didi

javascript - 如何将html表单导出到csv文件

转载 作者:可可西里 更新时间:2023-10-31 23:40:44 25 4
gpt4 key购买 nike

我正在尝试创建一个表单,用户可以在其中输入数据,然后当他们单击提交时,该数据将作为新行添加到存储在服务器上的 csv 文件中,然后我可以下载该文件。我已经尝试了一些 php 的东西和 javascript,这两个似乎都不错,但我在这两个方面都不是很有经验。

这是基本的 html 形式:

<form name="xyz_form">
<section class="border-bottom">
<div class="content">
<h3>ID Number</h3>
<div class="form-control-group">
<div class="form-control form-control-number">
<input type="number" id="id_number">
</div>
</div>
<h3>First Name</h3>
<div class="form-control-group">
<div class="form-control form-control-text">
<input type="text" id="first_name">
</div>
</div>
</div><!--.content-->
<section class="data-capture-buttons one-buttons">
<div class="content">
<input type="submit" value="Submit" onClick="javascript:addToCSVFile()">
</div>
</section><!--.data-capture-buttons-->

Javascript 位于 html 文件的 header 中,它是:

<script type="text/javascript">
function addToCSVFile() {
var csvData = new Array(); // To collect the names
var csvFilePath = "Data.csv"; // File name

// Collect General Information
csvData[0] = document.getElementById('id_number').value;
csvData[1] = document.getElementById('first_name').value;

var fso = new ActiveXObject('Scripting.FileSystemObject');
var oStream = fso.OpenTextFile(csvFilePath, 8, true, 0);
oStream.WriteLine(csvData.join(','));
oStream.Close();
clearData();
alert("Data Added Successfully");
}

function clearData() {
document.getElementById('id_number').value = "";
document.getElementById('first_name').value = "";
}
</script>

现在我有 onClick="javascript:addToCSVFile()"> 但是当我将表单操作设置为 handler.php 文件和发布方法时它也不起作用并删除 onlick。这是 php 文件。

   <?
if(isset($_POST['match_scouting'])){
$del = "\t";
//Collect Info
$data[1] = $_POST['id_number'];
$data[2] = $_POST['first_name'];
$file = fopen("Data.csv", "a");
$data = "\r\n".implode($del, $data);
fwrite($file, $data);
fclose($file);
echo "The data has been added successfully";
}else{
header("location: form.html");
}
?>

如果我做错了,你能给我指出不同的方向吗?然而,我最终想做的是以某种方式保存表单数据,我认为这比设置 SQL 数据库更容易,因为我以前从未这样做过。

最佳答案

为此,您不需要应用任何 javascript 代码。只需向您的表单添加一个操作

<form name="xyz_form" action="proces.php" method="get">

提交现在会将您重定向到该 php 文件。该 php 文件应包含以下内容:

<?php
$keys = array('id_number','first_name');
$csv_line = array();
foreach($keys as $key){
array_push($csv_line,'' . $_GET[$key]);
}
$fname = 'file_to_write_to.csv';
$csv_line = implode(',',$csv_line);
if(!file_exists($fname)){$csv_line = "\r\n" . $csv_line;}
$fcon = fopen($fname,'a');
$fcontent = $csv_line;
fwrite($fcon,$csv_line);
fclose($fcon);
?>

$Keys 是您拥有的所有输入字段的名称,您可以添加任意多个。 $fname 是您要写入的文件的名称。提交表单时,csv 文件会添加新行。

你可以照顾这个:Write a text file and force to download with php .如果要强制下载文件。您还可以查看此重定向而不是下载:How to make a redirect in PHP? .您还可以添加:

echo file_get_contents($fname);

到您的PHP

关于javascript - 如何将html表单导出到csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22264375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com