2017-04-18 92 views
0

我有一个html文件中的表单,它将数据发送到php文件。该PHP文件从数据库中选择,将结果转换成json文件并将其发送回html文件。从html获取php生成的json

我想知道如何从php获取json;我确实得到了答复(从检查菜单中的网络选项卡),但我不知道如何得到它(用它回显/提醒/制作图表)。提前致谢!

这是我的代码来发送数据:

<script type="text/javascript"> 
    $(function() { 
     $(".datepicker").datepicker({ 
      minDate: new Date(2015, 8 - 1, 25), 
      maxDate: "0" 
     }); 
    }); 

$(function() { 
    // On form's submit, takes both input's values... 
    $('form').on('submit', function (e) { 
     var from = $("#from").val(); 
     var to = $("#to").val(); 
     // ...to compare them and displays an error if "to" is smaller than "from" 
     if(Date.parse(from) > Date.parse(to)){ 
      alert("Invalid Date Range"); 
     } 
     else{ 
      e.preventDefault(); 
      $.ajax({ 
       type: 'post', 
       url: 'classes/Select.php', 
       data: $('form').serialize(), 
       success: function() { 
        alert('data sent'); 
       } 
      }); 
     } 
    }); 
}); 
</script> 

这是PHP的一部分,使JSON(左出所有的MySQL的部分,这样的):

while ($arr = $query->fetch(PDO::FETCH_ASSOC)) { 
    echo json_encode($arr); 
+0

https://stackoverflow.com/help/mcve – julekgwa

+0

您是否尝试过使用json_encode()?你能在这里写你的代码吗? –

+0

您需要向我们展示您的情况的示例代码。 –

回答

1

由于您使用在你的PHP循环,创建一个数组将保持结果,当循环结束时用json_encode回显结果;

$results = []; 
while ($arr = $query->fetch(PDO::FETCH_ASSOC)) { 
    $results[] = $arr; 
} 
echo json_encode($results); 

然后,在JavaScript

$.ajax({ 
     type: 'post', 
     url: 'classes/Select.php', 
     data: $('form').serialize(), 
     success: function(data) { 
      var results = JSON.parse(data); // convert the results to json 
      console.log(results); 
     } 
    }); 
+0

它的工作原理!可能是一个愚蠢的问题,但为什么我必须改变我的PHP代码?只有从json文件中创建对象? – Newwt

+0

@Newwt所以数据可以兼容JavaScript和PHP。不要忘记将其标记为答案。 – julekgwa

+0

完成,谢谢! – Newwt

1

在你javascript ajax调用代码,您可能会获得成功:键。尝试:

success: function(data) { console.log(data); } 
+0

不,不起作用。它会记录我发送的数据,而不是我收到的数据。 – Newwt

+0

你的代码在帖子中有成功:function()没有'数据'在括号中 – delboy1978uk

1

如果你得到一个JSON字符串使用json_decode($ JSON),你得到的价值,你想:

$json = '{"key-example": 12345}'; 

$obj = json_decode($json); 
print $obj->{'key-example'}; // 12345 
+0

我已经做了,事情是在html端,我不知道该怎么做才能获得php生成的json 。 – Newwt

+1

做一个ajax调用并打印响应数据后,将其转换成JSON与:JSON.parse(data) – Slaiv206

+1

是的,现在得到它解决,谢谢! – Newwt