【问题标题】:Send an array with objects to php将带有对象的数组发送到 php
【发布时间】:2017-07-06 11:01:26
【问题描述】:

我在这里尝试了很多将数据从 jQuery 发送到 php 的选项,但没有成功,我正在尝试发送一个对象数组,如下所示:

$.ajax({
            type: "POST",
            contentType: 'application/json',
            url: "sendCartDetails.php",
            data: {
                'details': prod
            }
    });

prod 的结构如下:

prod: [{name: 'Some Name'}, {name: 'Other Name'}]

还有我的 php 文件:

$data = json_decode($_POST['details']);

$to = "email@email.com";
$subject = "New Order";
$headers = "From: Some ";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = '<html><body>';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= "<tr style='background: #eee;'><td><strong>Name:</strong> </td><td>" . $data . "</td></tr>"
$message .= "</table>";
$message .= "</body></html>";

mail($to,$subject,$message,$headers);

此处未定义的数据在尝试发送时也有 500(内部服务器错误)。如何在这里正确获取数据?非常感谢

【问题讨论】:

  • 使用JSON.Stringify(prod)发送数据,然后使用json_decode(stripslashes($_POST['details']), true)
  • 首先检查您的数据是否进入页面(在php页面中打印数据并检查您的浏览器控制台是否打印了某些内容?)
  • @guradio 我这样做了,仍然无法正常工作,同样的 500 错误
  • @AlivetoDie 谢谢,让我试试

标签: php jquery arrays ajax


【解决方案1】:

试试 prod:[{"name": "Some Name"}, {"name": "Other Name"}]

【讨论】:

    【解决方案2】:

    您不能从 localhost(您的本地系统)发送电子邮件,除非您使用的是 3rd 方电子邮件解决方案 这条线: 邮件($to,$subject,$message,$headers); 将在服务器上工作,但在本地机器上,这将导致 500 服务器错误

    【讨论】:

    • 不是从本地主机发送的,这是一个真实的服务器
    • 哈哈,ok 那么首先使用真正的json,[{name: 'Some Name'}, {name: 'Other Name'}] 不是json,如果你有javascript数组, 你必须把你的数组转换成 json 格式,请检查这个 - stackoverflow.com/questions/2295496/convert-array-to-json
    【解决方案3】:

    我相信您的问题的解决方案在于服务器端,而不是客户端。此外,您应该像这样正确地将数据发送到服务器:

    data: {
        'details': JSON.Stringify(prod)
    }
    

    并检查数据是否正确发送,您可以在浏览器的开发工具中执行此操作(其中大多数是 F12 键)并查看“网络”选项卡。

    之后,我建议你尝试调试你的 PHP 代码,例如

    die(var_dump($_POST['details']));
    

    在脚本开始时。如果这变成未定义的索引通知,则发送/接收数据存在问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-06
      • 2016-09-04
      • 1970-01-01
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      • 2013-12-08
      • 2021-03-14
      相关资源
      最近更新 更多