从Javascript到PHP获取JSON

从Javascript到PHP获取JSON,javascript,php,json,Javascript,Php,Json,我有一个javascript函数,可以将JSON发送到我的服务器: $("#sendRoute").live('click', function(){ trackCoords_str = JSON.stringify(trackCoords); final_time_m_str = JSON.stringify(final_time_m); final_time_s_rounded_str = JSON

我有一个javascript函数,可以将JSON发送到我的服务器:

$("#sendRoute").live('click', function(){            
  trackCoords_str = JSON.stringify(trackCoords);             
  final_time_m_str = JSON.stringify(final_time_m);                
  final_time_s_rounded_str = JSON.stringify(final_time_s_rounded);
  aver_speed_km_h_rounded_str = JSON.stringify(aver_speed_km_h_rounded);
  total_km_rounded_str = JSON.stringify(total_km_rounded);
  $.ajax({
  url: "http://test.whirlware.biz/server/",               
  type: "POST",
  data: { 
    route : trackCoords_str,                 
    timeInMinutes: final_time_m_str,               
    timeInSeconds: final_time_s_rounded_str,
    averageSpeed: aver_speed_km_h_rounded_str,
    distance: total_km_rounded_str,
  },
  dataType: "json"
 });
});
混合使用PHP和JS代码来接收和显示我的JSON数据

$("#sendRoute").live('click', function(){            
  trackCoords_str = JSON.stringify(trackCoords);             
  final_time_m_str = JSON.stringify(final_time_m);                
  final_time_s_rounded_str = JSON.stringify(final_time_s_rounded);
  aver_speed_km_h_rounded_str = JSON.stringify(aver_speed_km_h_rounded);
  total_km_rounded_str = JSON.stringify(total_km_rounded);
  $.ajax({
  url: "http://test.whirlware.biz/server/",               
  type: "POST",
  data: { 
    route : trackCoords_str,                 
    timeInMinutes: final_time_m_str,               
    timeInSeconds: final_time_s_rounded_str,
    averageSpeed: aver_speed_km_h_rounded_str,
    distance: total_km_rounded_str,
  },
  dataType: "json"
 });
});
<?php
$route = $_POST['route'];
$timeInMinutes=$_POST['timeInMinutes'];
$timeInSeconds=$_POST['timeInSeconds'];
$averageSpeed=$_POST['averageSpeed'];
$distance=$_POST['distance'];

$trackCoords = json_decode($route, false);
$total_km_rounded = json_decode($timeInMinutes, false);
$final_time_m = json_decode($timeInSeconds, false);
$final_time_s_rounded = json_decode($averageSpeed, false);
$aver_speed_km_h_rounded = json_decode($distance, false);

echo $trackCoords['coordsarray'];
echo $total_km_rounded;
echo $final_time_m;
echo $final_time_s_rounded;
echo $aver_speed_km_h_rounded;
?>

<script type="text/javascript">
var total_km_rounded = '<?php echo $total_km_rounded ?>';
document.write('Растояние: ' + total_km_rounded);
var final_time_m = '<?php echo $final_time_m ?>';
document.write('Растояние: ' + final_time_m);
var final_time_s_rounded = '<?php echo $final_time_s_rounded ?>';
document.write('Растояние: ' + final_time_s_rounded);
var aver_speed_km_h_rounded = '<?php echo $aver_speed_km_h_rounded ?>';
document.write('Растояние: ' + aver_speed_km_h_rounded);
</script>

var总公里数四舍五入=“”;
文件。填写(‘аааааааааааааа1072;
var final_time_m='';
文件。书写(‘аааааааааааааа1072;
var最终时间四舍五入=“”;
文件。书写(‘ааааааааааааааа;
var Averar_speed_km_h_rounded='';
文件。书写(‘аааааааааааааааа;

但是当我发送JSON数据时,我的服务器不会显示它。我在哪里犯了错误?也许我可以用另一种方式接收JSON?

试试这个,
success:function(response){alert('success!');},
数据之后,而不是
数据内部

$("#sendRoute").live('click', function(){            
  trackCoords_str = JSON.stringify(trackCoords);             
  final_time_m_str = JSON.stringify(final_time_m);                
  final_time_s_rounded_str = JSON.stringify(final_time_s_rounded);
  aver_speed_km_h_rounded_str = JSON.stringify(aver_speed_km_h_rounded);
  total_km_rounded_str = JSON.stringify(total_km_rounded);
  $.ajax({
  url: "http://test.whirlware.biz/server/",               
  type: "POST",
  data: { 
    route : trackCoords_str,                 
    timeInMinutes: final_time_m_str,               
    timeInSeconds: final_time_s_rounded_str,
    averageSpeed: aver_speed_km_h_rounded_str,
    distance: total_km_rounded_str,
  },
  dataType: "json"
 });
});
data: { 
 route : trackCoords_str,                 
timeInMinutes: final_time_m_str,               
timeInSeconds: final_time_s_rounded_str,
averageSpeed: aver_speed_km_h_rounded_str,
distance: total_km_rounded_str   
},
success: function(response) {alert('Success!');},

您应该像这样对数组进行JSON.stringify():

$("#sendRoute").live('click', function(){            
  trackCoords_str = JSON.stringify(trackCoords);             
  final_time_m_str = JSON.stringify(final_time_m);                
  final_time_s_rounded_str = JSON.stringify(final_time_s_rounded);
  aver_speed_km_h_rounded_str = JSON.stringify(aver_speed_km_h_rounded);
  total_km_rounded_str = JSON.stringify(total_km_rounded);
  $.ajax({
  url: "http://test.whirlware.biz/server/",               
  type: "POST",
  data: { 
    route : trackCoords_str,                 
    timeInMinutes: final_time_m_str,               
    timeInSeconds: final_time_s_rounded_str,
    averageSpeed: aver_speed_km_h_rounded_str,
    distance: total_km_rounded_str,
  },
  dataType: "json"
 });
});

首先,成功的作用。查看文档。位置错误。我知道,谢谢,mybe你知道另一个可能导致问题的原因吗?我删除了成功:函数(响应){alert('success!');},这不是问题的原因我没有说,这是答案,这也是问题的原因。!我试过了,但没用,我也改变了index.php中的变量,但没有结果。你能用success()函数将从php发布的数据回显到这个javascript吗?我添加了success:function(){alert('success!');},error:function(){alert('error!';},当我发送JSON时,它显示“error”,所以我的JSON不会被发送。原因可能是什么?请在成功后查看此错误::错误:函数(xhr,ajaxOptions,thrownError){alert(xhr.responseText);alert(thrownError);}我有两个错误:但我不知道这里有什么语法错误,我只发送数字数据