我有一个包含一些数据的表单和数组。我试图将这两个对象发布到我的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)用于检索表格输入的方法是否正确?
答案 0 :(得分:1)
通常当你使用serialize()
时,你发送的只是一个urlencoded字符串。然后,表单控件名称可用作$_POST
但您目前只有2个密钥可用于$ _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"]
的转储,您将看到它是一个字符串...不是数组