Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
使用和显示对象数据、PHP和json/jquery_Php_Oop - Fatal编程技术网

使用和显示对象数据、PHP和json/jquery

使用和显示对象数据、PHP和json/jquery,php,oop,Php,Oop,在将对象数据从jquery传递到PHP时,我遇到了麻烦。我还在努力想办法让我的头脑清醒过来 代码如下: <script type ="text/javascript"> $(function() { $(".button").click(function() { //alert("click"); var jsonvar1 = {"skillz": {

在将对象数据从jquery传递到PHP时,我遇到了麻烦。我还在努力想办法让我的头脑清醒过来

代码如下:

        <script type ="text/javascript">
      $(function() { 


    $(".button").click(function() {
          //alert("click");


          var jsonvar1 = {"skillz": {
                            "web":[
                                    {"name": "html", 
                                     "years": "5"
                                    },
                                    {"name": "css", 
                                     "years": "3"
                                    }],
                            "database":[
                                    {"name": "sql", 
                                     "years": "7"
                                    }]
        }};



          $.ajax({
            url: "test2.php",
            type: 'POST',
            data: 'regemail=' + jsonvar1,



                success: function(result) {
                alert(result);

                },
                error:function (xhr, ajaxOptions, thrownError){
                alert(xhr.status);
                alert(thrownError);
            }
            });

      });
      });


        </script>
    </head>
    <body>

<input type="button" id="regSubmit" class="button" value="Register!" /></br></span>
<script>
$('input[type=button]').attr('disabled', false);
    //alert('test');
</script>  

$(函数(){
$(“.button”)。单击(函数(){
//警报(“点击”);
var jsonvar1={“skillz”:{
“网络”:[
{“名称”:“html”,
“年”:“5”
},
{“名称”:“css”,
“年”:“3”
}],
“数据库”:[
{“名称”:“sql”,
“年”:“7”
}]
}};
$.ajax({
url:“test2.php”,
键入:“POST”,
数据:“regemail=”+jsonvar1,
成功:功能(结果){
警报(结果);
},
错误:函数(xhr、ajaxOptions、thrownError){
警报(xhr.状态);
警报(thrownError);
}
});
});
});

$('input[type=button]').attr('disabled',false); //警报(“测试”);
上面的代码做3件事。捕获一个按钮点击,然后:eclares一个变量(jsonvar1),并对该变量执行一个到PHP后端的ajax请求

现在,PHP后端中的代码:

if (filter_has_var(INPUT_POST, "regemail")) {

    $data = $_REQUEST["regemail"];

    //echo "<br>I got some data!</br>";

    //print_r($data);

    //echo $data->skillz;

    //echo $data;

    var_dump($data);

} else {

echo "No Data.";
}
if(过滤器有变量(输入后,“regemail”)){
$data=$_请求[“regemail”];
//echo“
我得到了一些数据!
”; //打印(数据); //echo$data->skillz; //回波数据; var_dump($数据); }否则{ 回显“无数据”; }
(安全地忽略上面PHP中的所有回音和转储。这将是我试图以某种方式使用数据时的苦恼)

问题:如何将PHP中对象的数据拉入变量或数组,或者如果您愿意,如何直接处理该对象中的值?(假设它是一个对象,并且我没有犯其他无关的错误)

我想知道我是否忘记告诉我的请求它是JSON

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 编辑:

我试图添加 echo json_解码($data); 我的PHP代码,但它返回一个空白数据集

我还试图把 数据类型:“json”, 在我的ajax查询中

似乎仍然没有任何运气。

您将希望在服务器端使用它

if (filter_has_var(INPUT_POST, "regemail")) {
    $data = $_REQUEST["regemail"];

    //echo "<br>I got some data!</br>";
    //print_r($data);
    //echo $data->skillz;

    echo json_encode($data);
} else {
    echo "No Data.";
}
if(过滤器有变量(输入后,“regemail”)){
$data=$_请求[“regemail”];
//echo“
我得到了一些数据!
”; //打印(数据); //echo$data->skillz; echo json_编码($data); }否则{ 回显“无数据”; }
您遇到了一个很容易忽略的简单错误:jsonvar1包含一个对象,当您使用+运算符将其连接到“regemail=”时,它会变成一个字符串,但不是您想要的方式。结果字符串为“[object]”,因为JSON转换不是自动完成的。相反,这条线应该是

data: 'regemail=' + JSON.stringify(jsonvar1),
在PHP文件中,行

$data = json_decode( $data );

正如@sirlancelot已经说过的那样,将为您提供一个要使用的对象。

您研究过PHP json函数()吗?我可能错了,但我认为json_decode正是您要寻找的。嗯,这返回[object object],我注意到您接受了我的答案,但您的评论表明存在问题。你遇到别的事了吗?