如何提交查询请求并将其存储在javascript中的变量中?

时间:2014-10-09 14:24:17

标签: javascript sql json google-fusion-tables

我是SQL,JSON和Fusion Table的新手。我想从Fusion Table获取数据并将其存储在javascript中的变量中,以便我可以将数据附加到div元素中。

这是我到目前为止的javascript:

    var TopCity;
    TopCity = '{
          "dataSourceUrl": 'http://www.google.com/fusiontables/gvizdata?tq=',
          "query": 
        'SELECT Location FROM 131fgSFd-cumxvMzICckXO-W4CldzfO9J9D--Vw9V ORDER BY Total_Task_Num DESC LIMIT 1',

          }';



    $("#TopCityDiv").append("<div>" + TopCity + "</div>");

基本上,我想找到最多已完成任务的城市并显示城市名称。

我通读了融合表sql的东西,但仍然感到困惑: https://developers.google.com/fusiontables/docs/v1/sql-reference

感谢所有帮助。

更新:它有效!

为了查询我的融合表而不是将其保存在表中,我需要启用Fusion Table API并创建一个公共API密钥。

工作代码:

$(document).ready(function() {
    var TopCity;

    $.ajax({
        type: "GET",
        url: "https://www.googleapis.com/fusiontables/v1/query?sql=SELECT+Location+FROM+131fgSFd-cumxvMzICckXO-W4CldzfO9J9D--Vw9V+ORDER+BY+Total_Task_Num+DESC+LIMIT+1&hdrs=false&typed=false&fields=rows&key={API Key}",

        success: function(data) {
            TopCity = data["rows"];
            $("#TopCityDiv").append("<div>" + TopCity + "</div>");
        },
        error: function(xhr, error) {
            console.log('NaN');

        }
    });

});

1 个答案:

答案 0 :(得分:1)

您应该使用回调来获取数据。例如,您可以使用以下代码

<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {

        var TopCity;

        $.get('https://www.googleapis.com/fusiontables/v1/query?sql=SELECT Location FROM 131fgSFd-cumxvMzICckXO-W4CldzfO9J9D--Vw9V ORDER BY Total_Task_Num DESC LIMIT 1&key={your API key}', function (data, status, xhr) {
            //assign the data to TopCity for future use
            TopCity = data;

            //do something with the data here
            $.("#TopCityDiv").append("<div>" + data + "</div>");
        });
    });
</script>