Php JavaScript:将某些数据保存到csv

Php JavaScript:将某些数据保存到csv,php,javascript,jquery,Php,Javascript,Jquery,我知道JavaScript并不是用来打开和保存文件的。我见过的最好的方法是使用一个表单,然后将我需要的所有信息发布到一个PHP文件中,而不是将我想要的信息保存到一个文件中 我计划生成此类数据并将其存储到csv: 姓名,低,高,数字 使用输入框和javascript。我已经决定,我将这样开始(是一个输入框) 当用户单击add时,它会将数据存储到一个变量中。我应该如何做到最好?假设此人填写此信息: Name: Brian Start: 0 End: 100 W

我知道JavaScript并不是用来打开和保存文件的。我见过的最好的方法是使用一个表单,然后将我需要的所有信息发布到一个PHP文件中,而不是将我想要的信息保存到一个文件中

我计划生成此类数据并将其存储到csv:

姓名,低,高,数字

使用输入框和javascript。我已经决定,我将这样开始(是一个输入框)

当用户单击add时,它会将数据存储到一个变量中。我应该如何做到最好?假设此人填写此信息:

Name: Brian             Start: 0      End: 100    Wage 200  [add button]
alert(data[data.length-1].name);
我应该像$Array['Brian'][0100200]这样做吗

然后,当通过POST发送数组时,我可以在PHP中以某种方式循环数组


请记住,当用户单击Add时,会显示另一个选项,使用以前的数据,例如我的Brian示例,0100200

Name: Brian           Start: 100       End: ______   Wage: ______   [add button]
其理念是,不能在低和高之间创建任何间隙。你不能以100结束,以200开始,下一个永远是开始

编辑:

只是想提供一些背景资料,我存储的实际上是人们的小时工资。Brian,0,20,20实际上设定了0到20之间的时间;布赖恩每小时挣20美元

“开始”、“结束”和“工资”是什么意思
小时范围的开始、小时范围的结束和小时工资

您需要永久存储他们的数据吗
它需要存储到一个CSV文件中,该文件被客户端截取并转换为SQLite内存数据库进行处理

在一个存储期内,“Brian”是否有多个条目
是的,你想要多少就有多少。还必须有一个设置为“默认”的名称。。。这种情况下,如果员工没有特殊工资,他们会得到默认的员工工资和加班费,比如:
默认值,0,40,15

默认情况下,401000,20

我会将输入框设置为:

Name:  <input type="text" name="name[]">
Start: <input type="text" name="start[]">
End:   <input type="text" name="end[]">
Wage:  <input type="text" name="wage[]">
名称:
开始:
完:
工资:
这样,您可以轻松处理多个条目


看到和 代码很难看,但我相信您可以对其进行进一步润色。您可以在服务器端执行所有验证,删除空条目等。
链接上的大部分解释和一些示例代码。(需要jQuery)

< P>您可能想考虑将信息存储在JSON格式的本地数组变量中,然后通过POST变量将其发送到PHP页。

这里有一个简短的例子来说明这一点。我相信它能满足你的需求。(如果jsFiddle.net消失,则HTML标记和JavaScript位于回答的末尾。)

基本上我要做的是声明一个空数组变量:

var data = [];
然后,使用jQuery,我在单击“添加”按钮时将文本框和起始值添加到数组中:

data.push({"name" : $("#name").val(), "start": $("#start").text(), "end": $("#end").val(), "wage": $("#wage").val()});
每次单击“添加”都可以看到JSON格式的数组,我使用库输出它:

由于数据是一个数组,您可以在客户端上循环使用它并提取信息:

Name: Brian             Start: 0      End: 100    Wage 200  [add button]
alert(data[data.length-1].name);
您也可以在服务器端访问它(我不是PHP爱好者,但我99.99%确定那里有JSON支持)

希望这有帮助!如果对此有疑问,或者我没有得到正确的要求,请告诉我,我会相应地更新我的答案

编辑:这里是标记和JavaScript

标记

Name: <input type="text" id="name" /><br/>
Start: <span id="start">0</span><br/>
End: <input type="text" id="end" /><br/>
Wage: <input type="text" id="wage" /><br/>
<button id="add">Add</button>

<br/>
<div id="jsonData"></div>

<br/>
<button id="submit">Submit</button>
​

这个问题的解决方案在很大程度上取决于这个系统的目标。“开始”、“结束”和“工资”是什么意思?您需要永久存储他们的数据吗?在一个存储期内,“Brian”是否有多个条目?等等。我可以尝试为你制定一个解决方案,但根据目前的信息,我更有可能引导你陷入困惑,而不是远离它。这太令人惊讶了。我只是希望能有一些关于如何做到这一点的想法,而你们的回答基本上是工作演示。
var data = [];

$(document).ready(function() {
    $("#add").click(function(e) {
        e.preventDefault();
        //add the entered values into the array...
        data.push({"name" : $("#name").val(), "start": $("#start").text(), "end": $("#end").val(), "wage": $("#wage").val()});
        //set the start span to the value entered in the end textbox...
        $("#start").text($("#end").val());
        //clear out the text boxes (not efficient!)
        $("#name").val("");
        $("#end").val("");
        $("#wage").val("");

        //show some values!
        alert(data.length);
        alert(data[data.length-1].name);

        //show the JSON formatted array in the DIV at the bottom of the page...
        $("#jsonData").text(JSON.stringify(data));
    });

    $("#submit").click(function(e) {
        e.preventDefault();
        $.ajax({
            url: "/ajax_html_echo/",
            type: "POST",
            dataType: "json",
            data: {html: JSON.stringify(data)},
            success: function(data) { alert(JSON.stringify(data)); },
            error: function(x, t, m) { alert(t + " :: " + m); }
        });
    });
});
​