【发布时间】:2017-06-28 01:27:21
【问题描述】:
我有一个表格。 前 2 个输入只是一个客户 ID 和一个地址 ID。 剩下的就是多维表单,因为用户可以动态添加更多的项目。
<div class='invoice_object'>
<input name='item[1][quantity]' type='text' value=''/>
<textarea name='item[1][description]' ></textarea>
<input name='item[1][unit_price]' type='text' value=''/>
<input name='item[1][amount]' type='text' value=''/>
</div>
另一个发票对象可以用 jquery 添加,它会像这样:
<div class='invoice_object'>
<input name='item[2][quantity]' type='text' value=''/>
<textarea name='item[2][description]' ></textarea>
<input name='item[2][unit_price]' type='text' value=''/>
<input name='item[2][amount]' type='text' value=''/>
</div>
如果我使用提交按钮正常发布它,那么 $_POST 变量将包含:
$_POST['customer']
$_POST['address']
$_POST['item'] {
['1'] {
['quantity']
['description']
['unit_price']
['amount']
}
['2'] {
['quantity']
['description']
['unit_price']
['amount']
}
}
我已经搜索了几个小时并尝试了各种版本或序列化和 serializeArray.JSON 解码等 看来您只能从 jquery 向 php 发送一个字符串。使用 JSON 可以将其保存到 php 文件中,但 $_POST 最终总是只有 1 个值,并且它是一个包含所有数据的字符串。
我想一定有办法做到这一点...无需手动创建一个函数来根据方括号所在的位置剖析字符串。
请给我一些建议。 谢谢。 但没有全面剖析
jquery
var x = $('#new_invoice').serialize();
$.post("script/new_invoice_script.php", {
x
}, function(data) {
console.log (data);
});
【问题讨论】:
-
$(form).serialize();并使用 ajax 发送此序列化表单 -
显示使用
serialize()的代码。如果你正确使用它,它应该做你想做的事。由于它没有达到您的预期,因此您一定是用错了,但如果您不发布它,我们无法判断您做错了什么。 -
你的js呢?
-
抱歉现在上传。我尝试了不同的写作方式,我使用了 serializeArray() @Anant
-
对不起,现在在那儿@barmar
标签: php jquery ajax forms multidimensional-array