Ajax发布多个对象并在PHP

时间:2016-10-05 16:50:19

标签: javascript php jquery ajax

我有一个包含一些数据的表单和数组。我试图将这两个对象发布到我的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)用于检索表格输入的方法是否正确?

1 个答案:

答案 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"]的转储,您将看到它是一个字符串...不是数组