Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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数组(Ajax Json post到PHP不起作用)_Php_Jquery_Ajax_Json - Fatal编程技术网

如何使用PHP解码Json数组(Ajax Json post到PHP不起作用)

如何使用PHP解码Json数组(Ajax Json post到PHP不起作用),php,jquery,ajax,json,Php,Jquery,Ajax,Json,我是php新手,我有一个基于jquery/javascript的应用程序,它包括查找附近的位置,并以排序顺序给出结果。我试图将排序功能从html页面分离到服务器端php 它涉及将ajax请求发送到http://thewebby.net16.net/SortJson.php 以json数组作为参数 for ($row = 0; $row < sizeof($obj); $row++) { echo $obj[$row]['place']; } 它解析json请求并对其进行排序 基于这

我是php新手,我有一个基于jquery/javascript的应用程序,它包括查找附近的位置,并以排序顺序给出结果。我试图将排序功能从html页面分离到服务器端php

它涉及将ajax请求发送到http://thewebby.net16.net/SortJson.php 以json数组作为参数

for ($row = 0; $row < sizeof($obj); $row++) {


echo $obj[$row]['place'];

}
它解析json请求并对其进行排序

基于这些问题和答案 滑动分页 PHP 编辑:- 当使用$.post而不是$.ajax方法时,请求将被发送。但是在服务器端,php文件总是输入else,以防出现错误

if(isset($_POST['myData'])){..}
else{
 echo "File Working";
}
如何在php中解析以下数据,我得到了无效的参数错误。传递的变量既不是对象也不是数组。我正在用$.Post而不是$.ajax更新网站中的代码

编辑2:- var_转储的结果 对于此json输入


在文件开头使用此代码

<?php
    $postdata = json_decode(file_get_contents("php://input"));
        foreach($postdata as $key => $value){
        $credentials[$key] = $value;
        };
     print_r($credentials) //should return you the php accessible array instead of object.//only for testing purpose


     /*
        You logic to check the database or anyother operation
     */

数据不是json编码的。它是@Quentin指出的格式编码的,所以我没有使用json迭代器,而是使用它,没有将其编码为json作为正常的post参数

for ($row = 0; $row < sizeof($obj); $row++) {


echo $obj[$row]['place'];

}

你为什么要解码两次?您需要显示触发请求的代码。@rjdown我对php非常陌生,我是一名java开发人员,我想将一些编码转移到服务器端并测试一些东西,所以只有自由域允许使用php,所以我在php上测试这是上面提到的第二个问答中的代码。您从未将数据编码为JSON。FormData的屏幕截图显示它是表单编码的,而不是JSON编码的。JSON与这些有什么关系?@Quentin但是控制台以JSON格式输出与我在这个问题中添加的相同的数据。我想做的是在php对这些数据排序,并在服务器上做一些事情side@Quentin如何将其设置为JSON格式?解析JSON格式请求的每个参数都无效。我们可以看到用于发出请求的代码:它不是JSON格式的。
if(isset($_POST['myData'])){..}
else{
 echo "File Working";
}
array (
  0 => 
  array (
    'place' => 'GreenPepper',
    'Distance' => '0.487',
    'Lat' => '8.52699',
    'Lng' => '76.92419100000006',
  ),
  1 => 
  array (
    'place' => 'BAKE \'N\' COOL',
    'Distance' => '0.513',
    'Lat' => '8.527908',
    'Lng' => '76.92643599999997',
  ),
)
[{"place":"GreenPepper","Distance":0.487,"Lat":8.52699,"Lng":76.92419100000006},{"place":"BAKE 'N' COOL","Distance":0.513,"Lat":8.527908,"Lng":76.92643599999997}]
<?php
    $postdata = json_decode(file_get_contents("php://input"));
        foreach($postdata as $key => $value){
        $credentials[$key] = $value;
        };
     print_r($credentials) //should return you the php accessible array instead of object.//only for testing purpose


     /*
        You logic to check the database or anyother operation
     */
for ($row = 0; $row < sizeof($obj); $row++) {


echo $obj[$row]['place'];

}