如何通过$。员额发送JavaScript对象数组PHP脚本?
题
我有我的页面上的数据表。该列“开始”,“结束”,“评论”和“选项”。在选项栏是一个按钮,删除该行,和一个按钮,使表的行编辑。这样的“开始”,“结束”和“评论”的价值观被改变。再次单击它完成编辑过程。最后,还有一种方法到另一行添加到表中。所有这一切都按预期工作。
我想在创建的阵列列于表中的数据的底部,看起来像这样添加一个按钮(表示为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()
将数据写入到文件)?理想情况下,这将是availiable服务器端在一个阵列形式,以允许验证。
我很高兴使用jquery,如果它是必需的。
解决方案
您怎样端到服务器取决于你想要什么archieve做。如果要加载了新的一页,这将处理数据,您可以使用通常的形式隐藏输入。另外,如果你想处理是通过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" />
其他提示
我肯定会使用jQuery。下面是$ .POST()函数的页面。
http://docs.jquery.com/Ajax/jQuery.post
一个需要注意的是,$。员额()可以被简化,免去了您设置回调什么,但一个成功的岗位能力$阿贾克斯()函数的包装。对于通过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);
}
});