Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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 如何使用谷歌脚本将html表单数据保存到谷歌电子表格中?_Javascript_Html_Google Apps Script_Google Drive Api - Fatal编程技术网

Javascript 如何使用谷歌脚本将html表单数据保存到谷歌电子表格中?

Javascript 如何使用谷歌脚本将html表单数据保存到谷歌电子表格中?,javascript,html,google-apps-script,google-drive-api,Javascript,Html,Google Apps Script,Google Drive Api,我想创建一个HTML、CSS表单(比如谷歌表单),通过它我想接受文本数据和文件(比如图像和文档)。我正在使用谷歌脚本。这是form.html文件 <!-- Include the Google CSS package --> <link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/addons.css"> <form id="myForm"> <input type="t

我想创建一个HTML、CSS表单(比如谷歌表单),通过它我想接受文本数据和文件(比如图像和文档)。我正在使用谷歌脚本。这是form.html文件

<!-- Include the Google CSS package -->
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/addons.css">

<form id="myForm">
<input type="text" name="myName" placeholder="Your name..">
<input type="file" name="myFile">
<input type="submit" value="Upload File" 
       onclick="this.value='Uploading..';
                google.script.run.withSuccessHandler(fileUploaded)
                .uploadFiles(this.parentNode);
                return false;
                google.script.run.withSuccessHandler(fileUploaded)
                .doPost(this.parentNode);">
</form>

<div id="output"></div>

<script>
function fileUploaded(status) {
    document.getElementById('myForm').style.display = 'none';
    document.getElementById('output').innerHTML = status;
}
</script>

<style>
input { display:block; margin: 20px; }
</style>

上传的文件存储在我的谷歌硬盘中,但文本数据没有存储在电子表格中

删除
返回false。您没有执行doPost…

您还可以使用Cloudstitch的Magic Form实用程序,它为您的电子表格创建一个特殊的URL,您只需将普通POST请求发送到(或通过Ajax)即可。这样,您就不必担心所有客户端API


未设置SubmissionKey您是否能够找到问题的解决方案?
function doGet(e)
{
  return HtmlService.createHtmlOutputFromFile('form.html');
}
var url;

function uploadFiles(form) 
{
  try {

    var dropbox = "Student Files";
    var folder, folders = DriveApp.getFoldersByName(dropbox);

    if (folders.hasNext()) 
    {
      folder = folders.next();
    } else {
      folder = DriveApp.createFolder(dropbox);
    }

    var blob = form.myFile;    
    var file = folder.createFile(blob);    
    file.setDescription("Uploaded by " + form.myName);
    url=file.getUrl();
    return "File uploaded successfully " + file.getUrl(); 
  } 
  catch (error) 
  {  
    return error.toString();
  }
}
function doPost(form) { // change to doPost(e) if you are recieving POST data
  var name = form.myName;
  var message = 'Ram';
  var submissioSSKey = 'ID';
  var sheet = SpreadsheetApp.openById(submissioSSKey).getActiveSheet();
  var lastRow = sheet.getLastRow();
  var targetRange = sheet.getRange(lastRow+1, 1, 1, 2).setValues([[name,url]]);
}