首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将html表单导出到csv文件

问如何将html表单导出到csv文件
EN

Stack Overflow用户
提问于 2014-03-08 02:51:30
回答 1查看 25.9K关注 0票数 4

我试图创建一个表单,用户可以在其中输入数据,然后单击submit,这些数据将作为新行添加到存储在服务器上的csv文件中,然后我可以下载该文件。我尝试过一些php内容和javascript,这两者似乎都很好,但我在这两个方面都不是很有经验。

下面是html表单basicaly:

代码语言:javascript
复制
<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文件的头中,它是:

代码语言:javascript
复制
<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()">,但是当我将form操作设置为handler.php文件和将onlick发送和删除的方法时,它也不起作用。这是php文件。

代码语言:javascript
复制
   <?
    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数据库更容易,因为我以前从未这样做过。

EN

回答 1

Stack Overflow用户

发布于 2014-03-08 03:48:45

为此,您不需要应用任何javascript代码。只需在窗体中添加一个操作即可。

代码语言:javascript
复制
<form name="xyz_form" action="proces.php" method="get">

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

代码语言:javascript
复制
<?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?。您还可以添加:

代码语言:javascript
复制
echo file_get_contents($fname);

你的PHP

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22264375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档