PHP的AJAX Javascript对象不起作用

Posted

技术标签:

【中文标题】PHP的AJAX Javascript对象不起作用【英文标题】:AJAX Javascript object to PHP not working 【发布时间】:2017-11-18 11:06:21 【问题描述】:

我正在尝试从表单中获取信息并将其 AJAX 到 php 文件中,然后将其保存到 csv 文件中,但由于某种原因,php 文件正在接收带有空字段的 javascript 对象,即使它们看起来已填充控制台

我的代码如下所示:

var contact_info_list = company_name: "", contact_name: "", email: "", phone: "";

contact_info_list 在用户与表单交互时被填充,然后我使用发送它

$.ajax(
url: 'grab_contact_info.php',
type: 'POST',
data: JSON.stringify(contact_info_list),
dataType: 'json'
)

然后这是我抓取该对象的 php 代码

$contact_info = json_decode(file_get_contents('php://input'), true);

有人可以告诉我,我在这里缺少什么吗?

【问题讨论】:

【参考方案1】:

您不需要“JSON.stringify”,因为您已经告诉 ajax 这是一个 json 文件。所以这对我有用:

var contact_info_list = company_name: "Test Co.", contact_name: "Jon Doe", email: "jondoe@test.com", phone: "123456789";

$.ajax(
    url: 'grab_contact_info.php',
    type: 'POST',
    data: contact_info_list,
    dataType: 'json'
);

然后在你的grab_contact_info.php 文件中,你会得到这样的值:

$company_name = $_POST["company_name"];
$contact_name = $_POST["contact_name"];
$email = $_POST["email"];
$phone = $_POST["phone"];

【讨论】:

【参考方案2】:

试试data: contact_info_list,

$.ajax(
    url: 'grab_contact_info.php',
    type: 'POST',
    data: contact_info_list,
    dataType: 'json'
)

【讨论】:

我相信dataType是用于ajax响应数据类型,请求数据类型是使用contentType设置的 查看***.com/questions/14322984/…的解释

以上是关于PHP的AJAX Javascript对象不起作用的主要内容,如果未能解决你的问题,请参考以下文章

通过 Ajax (WooCommerce) 加载 single_product_content 时变体 Javascript 不起作用

在 PHP/MySQL 插入中转义单引号不起作用

使用 jQuery AJAX 向所需的 PHP POST 请求处理程序提交表单不起作用

AJAX 功能在没有警报的情况下不起作用

在ajax加载页面后执行javascript脚本 - 不起作用

通过ajax发送php代码不起作用