我的页面上有一张数据表。列是“开始”,“结束”,“评论”和“选项”。在选项列中有一个用于删除行的按钮,以及一个使表格的行可编辑的按钮。这允许改变“开始”,“结束”和“注释”的值。再次单击它将完成编辑过程。最后,有一种方法可以向表中添加另一行。所有这些都按预期工作。
我想在底部添加一个按钮,用于创建表中数据的数组,看起来像这样(表示为JSON纯粹是为了便于显示到SO:不需要):
[
{
"start" :"2009/08/01",
"end" :"2009/08/08",
"comment" :"an example date.",
},
{
"start" :"2009/07/01",
"end" :"2009/07/08",
"comment" :"another example date, a month earlier.",
},
{
"start" :"2000/07/01",
"end" :"2000/07/08",
"comment" :"another example date, a year earlier. You get the idea.",
}
]
我不应该在构建数组时遇到太多麻烦,但是一旦有了,我怎么能将它发布到后端php脚本(然后使用put_csv()
将数据写入文件)?理想情况下,它可以以数组格式提供给服务器端,以便进行验证。
如果需要,我很乐意使用jquery。
答案 0 :(得分:1)
如何将其结束到服务器取决于您想要达到的目的。如果要加载将处理数据的新页面,可以使用带有隐藏输入的常用表单。或者,如果您想通过AJAX处理后台,请使用jQuery.ajax
作为CRasco说。无论您使用哪种方式,都需要将结构化数组转换为简单的键/值列表。
一个选项是生成一个JSON文档(我不认为jQuery为此提供了一个函数,但你可以很容易地找到一些东西)并使用带有序列化文档的单个字段。然后在服务器端,您将使用json_decode
来获取阵列。如果您使用的是AJAX方法,jQuery.ajax
调用中的数据选项将包含:
{
'data': '[{"start":"2009/08/01","end":"2009/08/08","comment":"an example date."},...'
}
更好的方法是将其序列化为PHP本身可以理解的格式的字段列表。这意味着你不必做任何特别的事情,$_POST['data']
将包含数组。例如:
{
'data[0][start]': '2009/08/01',
'data[0][end]': '2009/08/08',
'data[0][comment]': 'an example date.',
'data[1][start]': '2009/07/01',
'data[1][end]': '2009/07/08',
'data[1][comment]': 'another example date, a month earlier.',
...
}
如果您使用的是表单方法,则需要生成输入字段,如:
<input type="hidden" name="data[0][start]" value="2009/08/01" />
答案 1 :(得分:0)
我肯定会使用jQuery。这是$ .post()函数的页面。
http://docs.jquery.com/Ajax/jQuery.post
有一点需要注意,$ .post()是$ .ajax()函数的包装器,它被简化了,并且除了成功的帖子之外,你还无法设置回调。对于通过AJAX进行的重要事务,我会使用它:
http://docs.jquery.com/Ajax/jQuery.ajax
一个例子是:
$.ajax({
url: "script.php",
global: false,
type: "POST",
data: ({id : this.getAttribute('id')}),
dataType: "html",
success: function(msg){
alert(msg);
}
});