javascript - Ajax 在 PHP 中发布多个对象并检索

标签 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) 检索表单输入的方法是否正确?

最佳答案

通常,当您使用 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/

相关文章:

javascript - 具有后台同步模块的 Workbox Service Worker

javascript - 在 Node 中返回 Postgres 查询,服务器将无法运行

javascript - 到 HH MM SS 的秒数(大于 24 小时)

php - Magento - PayPal 未重定向到移动网站

javascript - 如何使用Trigger函数控制div的显示或隐藏

jquery - 日期时间选择器无法选择今天日期

javascript - 使用 Parsley 禁用输入类型编号的 'step' 验证行为

php在静态函数中没有重载

php - 从 php 服务器向 ios 设备发送多个推送通知

javascript - Kendo 网格内的单选按钮