javascript - JSON 对象通过 jQuery 发布到 php

标签 javascript php jquery json object

我知道,有很多问题,但没有一个对我有用。

我在 javascript 中构建了一个包含普通 javascript 对象的数组,并通过 jquery.post 将其发送到服务器。但是在服务器上,我无法使用 php $obj->value 访问数据。我尝试了 json_decode/encode 等等。

这是 console.log(data) 在发送到服务器之前给我的。

enter image description here

比起 php 部分,我只这样做:

 $data= $_POST['data'];
 print_r($data);

print_r 的输出是:

enter image description here

这就是我的 Jquery 帖子的样子:

    $.post("programm_eintragen.php",{
            data: data,

        }).success(
            function(data){                 
                    //success

        }).error(
            function(){
            console.log("Error post ajax " );
        },'json');      

谁能告诉我:

如何正确访问 php 站点上的对象属性?

我也得到 tried to access non object .... 或 php 将 json 对象解释为字符串 data[0] 返回给我 [.

我想,我可以这样做:

$data[0]->uebungen[0] 

我是不是太傻了,错过了什么?

为什么将整个 json 发送到 php 这样的问题?

最佳答案

在 JavaScript 中,您实际上并没有发送 JSON 编码的字符串,您只是发送表单数据。要实际发送 JSON 字符串,您需要将其(对象)转换为字符串。

$.post("programm_eintragen.php",{
  data: JSON.stringify(data),
});

在接收端(php 脚本),您将有一个 JSON 字符串。你可以解码它。

$data = json_decode($_POST['data'], true);

var_dump($data[0]['uebungen'][0]);

但是,这些步骤不是必需的。所有的 json_encoding 都可以通过直接访问数组来避免。对于此示例,请忽略上面的 javascript,并且不要更改代码中的任何内容。

$data = $_POST['data'];
var_dump($data[0]['uebungen'][0]);

example

关于javascript - JSON 对象通过 jQuery 发布到 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24722019/

相关文章:

javascript - 如何检查此函数中是否至少选中了一个单选按钮?

javascript - 如何在系统即将进入休眠状态时获取事件

php - 用 JavaScript 编写的 Cookie 在 PHP 中仅显示为整数

javascript - 通过 AJAX 加载子菜单项的 HTML/javascript 上下文菜单

javascript - javascript 中的计时器有时不想停止计数

javascript - 管理 JavaScript 数据

javascript - 如何平滑地更改背景颜色?

javascript - 如何在 Javascript 中将对象作为参数传递

php - 使用复选框过滤 jQuery ListView

php - MySQL 查询 : does LIMIT put a cap on both entries before NOW() and after NOW()