从html

时间:2017-04-18 08:15:56

标签: javascript php jquery html ajax

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

我想知道如何从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>

这是制作json的php部分(省略了所有mysql部分等):

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

3 个答案:

答案 0 :(得分:1)

在您的javascript ajax调用代码中,您可能获得了成功:密钥。尝试:

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分: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);
       }
   });