javascript - 如何使用 javascript 将表单输出链接到谷歌融合表查询

标签 javascript html forms google-fusion-tables

我正在尝试创建一个 html 表单,它将根据用户输入的县显示一个 google 融合表。

这是我目前拥有的代码,它显示了 county louth 的结果。

<title>Sample form</title>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
    google.charts.load("current", { packages: ['table'] });
    google.charts.setOnLoadCallback(drawVisualization);
    function drawVisualization() {
        google.visualization.drawChart({
            "containerId": "visualization_div",
            "dataSourceUrl": "//www.google.com/fusiontables/gvizdata?tq=",
            "query": "SELECT 'AIRO_ID', 'Off_Name', 'County'FROM " +
                    "1BeYE5fGPxo3yTNdmL_JE63JEMANnckYwcUmW4ouV WHERE 'County' = 'Louth'",
            "refreshInterval": 5,
            "chartType": "Table",
            "options": {}
        });
    }
</script>
</head>
<body style="font-family: Arial;border: 0 none;">
<div id="visualization_div" style="width: 600px; height: 400px;"></div>
</body>

我想使用以下形式的输出来代替 louth。但我似乎无法弄清楚如何将表单链接到 javascript。

<html>    <form>
    <select name="County">
        <option value="Antrim">Antrim</option>
        <option value="Armagh">Armagh</option>
        <option value="Carlow">Carlow</option>
        <option value="Cavan">Cavan</option>
        <option value="Clare">Clare</option>
        <option value="Cork">Cork</option>
        <option value="Derry">Derry</option>
        <option value="Donegal">Donegal</option>
        <option value="Down">Down</option>
        <option value="Dublin">Dublin</option>
        <option value="Fermanagh">Fermanagh</option>
        <option value="Galway">Galway</option>
        <option value="Kerry">Kerry</option>
        <option value="Kildare">Kildare</option>
        <option value="Kilkenny">Kilkenny</option>
        <option value="Laois">Laois</option>
        <option value="Leitrim">Leitrim</option>
        <option value="Limerick">Limerick</option>
        <option value="Longford">Longford</option>
        <option value="Louth">Louth</option>
        <option value="Mayo">Mayo</option>
        <option value="Meath">Meath</option>
        <option value="Monaghan">Monaghan</option>
        <option value="Offaly">Offaly</option>
        <option value="Roscommon">Roscommon</option>
        <option value="Sligo">Sligo</option>
        <option value="Tipperary">Tipperary</option>
        <option value="Tyrone">Tyrone</option>
        <option value="Waterford">Waterford</option>
        <option value="Westmeath">Westmeath</option>
        <option value="Wexford">Wexford</option>
        <option value="Wicklow">Wicklow</option>
    </select>
    <input type="submit" value="Submit">

最佳答案

一种链接 <select> 的方法使用 Javascript 的元素是使用 onchange事件。然后,每当在下拉菜单中选择一个新元素时,都会调用一个函数(在本例中为 showCounty())。此函数使用所选值更新图表。

请注意 onchange event 将一个函数作为其参数,并使用 this 将事件数据(包括所选值)传递给该函数。关键字。

下面是对您的代码的修改,展示了这种技术:

google.charts.load("current", { packages: ['table'] });
google.charts.setOnLoadCallback(loadDefault);

function showCounty(event) {
    google.visualization.drawChart({
      "containerId": "visualization_div",
      "dataSourceUrl": "//www.google.com/fusiontables/gvizdata?tq=",
      "query": "SELECT 'AIRO_ID', 'Off_Name', 'County'FROM " +
               "1BeYE5fGPxo3yTNdmL_JE63JEMANnckYwcUmW4ouV WHERE 'County'='" 
               + event.value + "'",
      "chartType": "Table",
      "options": {}
    });
}

function loadDefault() {
  showCounty({value: "Louth"});
}
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<div id="visualization_div" style="width: 600px; height: 180px;"></div>
<select name="County" onchange="showCounty(this)">
  <option value="Cork">Cork</option>
  <option value="Dublin">Dublin</option>
  <option value="Louth" selected="selected">Louth</option>
</select>

关于javascript - 如何使用 javascript 将表单输出链接到谷歌融合表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40638294/

相关文章:

javascript - 如何在循环中增加setInterval计时器

javascript - Angular 2 : using [class. someClass] 导致 `No provider for ControlContainer!` ?

javascript - 使用 anchor 标记 a 在网格中创建动态按钮

php - 一位数字验证码匹配,PHP

javascript - onchange 表单字段事件后表单提交不起作用

javascript - Prototype 最好的字段验证插件是什么?

php - JavaScript : removing new line does not work

javascript - 从 Javascript 读取硬编码 csv 文件的最佳实践

javascript - 如何在javascript中删除空数组长度

html - 将工具提示尾部添加到 CSS 下拉菜单?