如何将编辑后的表格数据保存在PHP的CSV文件中


How to save the edited table data in CSV file in PHP

我当前在将表数据保存到data.csv文件中时遇到问题。使用这个javascript,我从表中获取值并将其显示在警报框中,但我想将此变量数据存储在adata.csv文件中。我已将隐藏字段值传递到此页面中。请编辑我的代码,因为这是我的第一个PHP代码。

这是我的代码:

<html>
    <head>
    <script>
        function GetCellValues()
        {
            var str = '';
            var rows = document.getElementsByTagName('tr');
            var table=document.getElementById("project");
            for (var i=0;i<table.rows[0].cells.length;i++)
            {
                if (i > 2 )
                {
                    str = str + table.rows[0].cells[3].innerHTML.replace(", ");
                }
                else
                {
                    str = str + (table.rows[0].cells[i].innerHTML) + ', ' ;
                }
            }
        for (var c = 1 ; c < rows.length ; c++)
        {
            str += ''n' + "0" + c + ', ';
            var row = rows[c];
            var inputs = row.getElementsByTagName('input');                
            for (var k = 0 ; k < inputs.length ; k++)
            if (k > 1)
            {
                str += inputs[k].value.replace(", ");
            }
            else 
            {
                str += inputs[k].value + ', ';
            }
        }   
        document.getElementById('hiden').value = str;
        alert(document.getElementById('hiden').value);
    }

这里我有一个问题,我无法将表数据保存到文件中。

    <?php
        function saved()
        {
            $handle = fopen("data.csv", "w");
            $hiden = $_REQUEST["hiden"];
            fwrite($handle,$hiden);
        }
    ?>
    </script>       
    </head>

我用以下方式制作了按钮:

    <body>
    <form>
        <br>
        <h1 style="text-align: center">* * * PROJECTS * * *</h1>
        <br>
            <input type = "hidden" id = "hiden" name = "hiden" value = "">
            <input type = "button" name = "submit" onclick = "GetCellValues()" Value = "SAVE">
            <input type = "button" name = "submit" onclick = "document.write('<?php echo saved() ?>');"  Value = "submit"> 
        <br>
    </form>

在这里,我存储了.csv文件中的数据,并将其显示在表中:

    <?php
        $handle = fopen("data.csv", "w");
        $hide = $_REQUEST['hide'];
        fwrite($handle,$hide);
        $file = file('data.csv');
        $lines = count($file);
        echo'<table id = "project" border = "1" cellpadding="2" cellspacing="0"
        style = "width: 60%; margin-left: auto; margin-right: auto; border-color: brown; background-color:gray;">';
        echo'<tr cellpadding="100">
            <th width="15%">Sl.No.</th>
            <th width="15%">Project Name</th>
            <th width="15%">ChangeDate</th>
            <th width="15%">Changed By</th>
        </tr>';
        for ($i=1; $i<$lines; $i++) 
        {
            $part = explode(',', $file[$i]);
            echo'<tr>
                <td align= "center" width="5%">'.$part[0].'</td>
                <td align= "center" width="25%"><input type="text" value='.$part[1].'></td>
                <td align= "center" width="25%"><input type="text" value='.$part[2].'></td>
                <td align= "center" width="25%"><input type="text" value='.$part[3].'></td> 
            </tr>';
        }
        echo'</table>'; 
    ?>
    </body>
</html>

使用PHP的fputcsv()函数

检查:
http://www.w3schools.com/php/func_filesystem_fputcsv.asp
http://php.net/manual/en/function.fputcsv.php

使用Ajax将生成的字符串发送到php文件,然后可以从中写入csv文件。为了编写简单的javascript,请使用jquery。

您可以做的另一件事是,一旦您在隐藏变量中有数据,就"提交"表单。document.forms['user'].submit();