首页 > 解决方案 > 如何解码发布到 php 的 jQuery json 数据

问题描述

我有一个使用 jQuery 将表单数据发送到 php 的网页。我想解码数据数组并循环遍历它,使用 php print_r 显示四个值中的每一个。

这是将数据发布到 php 的 jQuery 函数:

<script type="text/javascript">
function postData() {
    return $.ajax({
    var datastring = $("#echo_test").serialize();
    $.ajax({
       type: "POST",
       url: "echo_test.php",
       data: {post: datastring},
    });
});
}
</script>

这是php函数echo_test:

<?php
$obj = json_decode($_POST['post']);
print_r($obj['firstname']);
?>

我认为 json_decode 是错误的,因为发布的数据不是 json 格式。

当我单击调用 jQuery 函数的按钮时,php 页面在浏览器中打开,但它是空白的,没有回显。理想情况下,我会遍历 $obj 以在屏幕上显示四个值中的每一个。

最终,我会将数据发布到云服务器上的 Postgres。现在,我在本地对其进行测试以验证数据,因为我不熟悉将数据从 jQuery 传递到 php。

感谢您对此的任何帮助。

标签: javascriptphpjquery

解决方案


您需要做的是使用 parse_str: https ://php.net/manual/en/function.parse-str.php

<?php
parse_str($_POST['post'], $obj);
print_r($obj['firstname']);
?>

推荐阅读