Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过jQuery发布到php的JSON对象_Javascript_Php_Jquery_Json_Object - Fatal编程技术网

Javascript 通过jQuery发布到php的JSON对象

Javascript 通过jQuery发布到php的JSON对象,javascript,php,jquery,json,object,Javascript,Php,Jquery,Json,Object,我知道,有很多问题,但没有一个对我有用 我用javascript中的普通javascript对象构建了一个数组,并通过jquery.post将其发送到服务器。但是在服务器上,我无法使用php$obj->value访问数据。我尝试了json\u解码/编码等等 这是console.log(data)在发送到服务器之前提供给我的信息 而在php部分,我只做了以下几点: $data= $_POST['data']; print_r($data); 打印输出为: 这就是我的Jquery帖子的样子

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

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

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

而在php部分,我只做了以下几点:

 $data= $_POST['data'];
 print_r($data);
打印输出为:

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

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

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

        }).error(
            function(){
            console.log("Error post ajax " );
        },'json');      
谁能告诉我:

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

我还尝试访问非对象。或php将json对象解释为字符串,
数据[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_编码都可以通过直接访问数组来避免。对于这个例子,忽略上面的javascript,不要更改代码中的任何内容

$data = $_POST['data'];
var_dump($data[0]['uebungen'][0]);
我就是这样做的:

JavaScript

var data_obj = {
    "function": "create_customer",
};
$.post({ url: "src/index.php", dataType: "json", data: data_obj }, function (data) {

});
PHP

$json_obj = json_decode(json_encode($_POST));
$function = $json_obj->{"function"};

URL是相对于
index.html

的路径,JS不会将JSON发布到PHP代码中,而是发布一个数组。它看起来像是在发布过程中转换为字符串文字,这就是
print\r($data)
显示的内容(注意输出周围的
)。