Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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
Javascript 在GoogleApps脚本中将变量推送到下拉列表中_Javascript_Html_Google Apps Script_Google Apps Script Editor - Fatal编程技术网

Javascript 在GoogleApps脚本中将变量推送到下拉列表中

Javascript 在GoogleApps脚本中将变量推送到下拉列表中,javascript,html,google-apps-script,google-apps-script-editor,Javascript,Html,Google Apps Script,Google Apps Script Editor,我试图使用GoogleApps脚本将一些变量推到下拉列表中。遇到“格式错误的HTML内容”错误。这肯定与我如何编写“option value=”有关,但我无法理解。 谢谢你的帮助 <html> <head> <base target="_top"> </head> <body> <select> <? Logger.log("data "+data) ?>

我试图使用GoogleApps脚本将一些变量推到下拉列表中。遇到“格式错误的HTML内容”错误。这肯定与我如何编写“option value=”有关,但我无法理解。 谢谢你的帮助

<html>
   <head>
      <base target="_top">
   </head>
   <body>
      <select>
      <? Logger.log("data "+data) ?>
      <? for (var i = 0; i < data; i++) {  ?>
      <?= "<option value=\"" + data[i].name + "\">" + data[i].name + "</option>" ?>
      <? } ?>
      </select>
   </body>
</html>

编写html并在需要时输出相关字符串,而不是将字符串连接到块中

  <select>
  <? for (var i = 0; i < data; i++) {  ?>
     <option value="<?= data[i].name ?>"> <?=data[i].name?></option>
  <? } ?>
  </select>


你这样做是不会成功的。使用:

google.script.run是一个异步客户端JavaScript API,可在HTML服务页面中使用,可以调用服务器端应用程序脚本函数。要通过客户端代码与Google文档、工作表或表单中的对话框或侧栏进行交互,请使用Google.script.host。有关更多信息,请参阅HTML服务中与服务器函数通信的指南

示例代码段:

代码.GS

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function doSomething() {
  Logger.log('I was called!');
}
然后在你的INDEX.HTML上

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <script>
      google.script.run.doSomething();
    </script>
  </head>
  <body>
  </body>
</html>

google.script.run.doSomething();

为什么要在模板中执行此操作?使用页面加载处理程序与
google.script.run
结合使用。谷歌的
HtmlService
通信指南中有这样的例子。这样做意味着您可以非常轻松地根据新数据更新此选项列表,而无需刷新页面?它似乎仍然不起作用,但我确信我做错了什么。函数createDropdown(courses){var div=document.getElementById('output');div.innerHTML=courses;}google.script.run.withSuccessHandler(createDropdown.getCourses();是的,类似于:)可能您只想在页面初始加载后调用异步加载脚本,如下所示:可能在本例中,您希望显示OP的即时有用性,例如,使用成功处理程序更改某些客户端HTML。也许客户端代码以“我向服务器挥手致意”开头,当页面完成加载时,它会被更改为包含“服务器函数说你好”。当我引用数据[I].name时,它只会将确切的字符串放在下拉列表中。我实际上如何编写变量?我不确定我是否理解,我需要查看代码。请注意,这种生成下拉列表的方法非常有效,我已经用这种方法做过很多次了。google.script.run方法也是一种很好的方法。