我有一个页面,它是CRUD的一部分,我可以编辑我的数据并将其发送到我的php应用程序的更新操作。基本上,它是一个带有输入字段的HTML表单。 在这个页面上,我试图通过jQuery插件实现某种拖放列表排列。排序元素后,我通过js脚本创建一个数组,该脚本保存我的层次结构,它看起来像这样:
[
{
"id": 21,
"name": "John"
},
[
{
"id": 25,
"name": "Bill"
},
{
"id": 20,
"name": "Ann"
}
],
{
"id": 18,
"name": "Sally"
},
{
"id": 24,
"name": "Tom"
}
]
现在,我怎样才能通过POST将此数组从javascript传递到我的更新操作,并使用其余的表单,以便以适当的JSON格式将其存储在数据库中?
答案 0 :(得分:1)
选项1
您可以创建一个包含所有数据的JS对象(表单数据和分层数组)。
之后,您可以使用jQuery .ajax()
方法或.post()
方法发送它。
使用jquery
查询表单输入var formValues = {
nameField1: $(field1Selector).val(),
nameField2: $(field2Selector).val(),
//(...) the remaining fields
//variable holding your array
arrangement: dragAndDropArray
};
然后,您可以通过
将该请求发送到服务器$.ajax({
url: actionUrl,
method: 'POST',
data: formValues //here you're setting the payload of your POST request
});
这是documentation for the .ajax() method
选项2
另一种选择是在表单中创建一个隐藏的输入字段,并将其值设置为JS数组的JSON字符串。
在表单中添加隐藏字段,如
<input type="hidden" id="hierarchical-array-input" name="hierarchivalArr" />
然后,每次更新数组时,都要设置隐藏输入的值,如下所示:
$('#hierarchical-array-input').val(JSON.stringify(hierarchicalArr));
您需要在两种情况下处理PHP中的值。我建议你试一试并调试PHP如何解析数据。
注意强>
您还可以将第一个方法与查询表单的插件一起使用,并为您生成JS对象。像,