我有一个表单和一个包含一些数据的数组。我正在尝试将这两个对象发布到我的 php 脚本中。我用来发布表单和数组的代码如下所示:
var json_data = JSON.stringify(data_vendor); //array to be posted
$.ajax({
url: '/crm/inventory/add_purchase_order.php',
type: 'POST',
data: {data_vendor:json_data,form_data:$("#purchase_orderform").serialize()},
dataType: 'json',
在 PHP 脚本中,我可以使用以下命令解码数组:
$vendor_codes = json_decode($_POST["data_vendor"],true);
该表单包含多个字段/输入,其中之一称为“order_quantity”。我正在尝试使用以下方法检索该值:
$order_quantity = $_POST["order_quantity"];
读取的数据显示为NULL。
(i) 用于发布多个对象/字符串的方法是否正确? (ii) 检索表单输入的方法是否正确?
最佳答案
通常,当您使用 serialize()
时,您将发送所有内容,因为它是一个 urlencoded 字符串。然后表单控件名称可作为 $_POST
但是您目前只有 2 个 key 可用于 $_POST ... $_POST["data_vendor"]
和 $_POST["form_data"]
$_POST["form_data"]
是您使用 serialize()
完成的 urlencoded 字符串,因此现在还需要手动解码
尝试
$formData = urldecode($_POST["form_data"]);
$order_quantity = $formData ['order_quantity'];
要验证这一点,只需转储 $_POST["form_data"]
,您就会看到它是一个字符串...而不是数组
关于javascript - Ajax 在 PHP 中发布多个对象并检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39879652/