Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何将值从ScriptDb传递到Google站点小工具_Google Apps Script_Google Sites - Fatal编程技术网

Google apps script 如何将值从ScriptDb传递到Google站点小工具

Google apps script 如何将值从ScriptDb传递到Google站点小工具,google-apps-script,google-sites,Google Apps Script,Google Sites,我有一个带有嵌入式应用程序脚本小工具的谷歌网站页面。在页面上,我希望单击按钮后显示ScriptDb数据 我的问题是:如何将ScriptDb结果传递给我的小工具中嵌入的JavaScript 以下是我的资料来源: [示例代码.gs] function doGet() { // return template page return HtmlService .createTemplateFromFile('Sample-HTML') .evaluate().setSan

我有一个带有嵌入式应用程序脚本小工具的谷歌网站页面。在页面上,我希望单击按钮后显示ScriptDb数据

我的问题是:如何将ScriptDb结果传递给我的小工具中嵌入的JavaScript

以下是我的资料来源:

[示例代码.gs]

function doGet() {
  // return template page
  return HtmlService
      .createTemplateFromFile('Sample-HTML')
      .evaluate().setSandboxMode(HtmlService.SandboxMode.NATIVE);
}

function include(filename) {
  return HtmlService.createHtmlOutputFromFile(filename)
      .getContent();
}

// assume db contains 10 'records'
function getData(query) {
  var db = ScriptDb.getMyDb(); 
  var data = db.query(query);
  Logger.log(data.getSize()); // returns '10.0'
  return data; // makes showData think this is null
}
[示例HTML.HTML]

<?!= include('Sample-JavaScript'); ?>

<input type="button" value="show data"
    onclick="google.script.run
    .withSuccessHandler(showData)
    .getData({})" />

[示例JavaScript.html]

<script>
function showData(db_query_result) {
alert(db_query_result); // returns null.
}
</script>

函数showData(数据库查询结果){
alert(db_query_result);//返回null。
}

db.query()返回的值是中定义的对象,不能直接在UI中使用,您应以可在页面中显示的格式返回值:字符串或字符串数组

我没有测试,但这应该可以:

function getData(query) {
  var db = ScriptDb.getMyDb(); 
  var result = db.query(query);
  Logger.log(result.getSize()); // returns '10.0'
  var results = db.query({type: 'person'});
  var data = [];
  while (results.hasNext()) {
   data.push(results.next());
  }
  return data; // data is an array of results
}

谢谢,我想那家伙不会再出现了。。‘13年9月;——)姗姗来迟的谢谢你,谢尔盖:)我还不太懂礼节。现在,当谷歌关闭ScriptDb时,一切都成了泡影。谢谢(迟做总比不做好:-),是的,确实很不幸…,我有点喜欢它;)ScriptDB已被弃用