提交时,doPost“遇到意外错误”Web窗体

时间:2013-12-04 06:20:46

标签: javascript google-apps-script

提交后我被困在这个网页上。下面的代码在我之前在Serge和其他一些人的帮助下创建的以前的Web表单中工作。我正在尝试重新编写代码以生成PTO请求Web表单。现在,当提交它时,吐出一个“意外错误遇到错误,我在试图找到问题时迷失了。我想我可能是如何将面板添加到一起并且他们的关系?这是一项正在进行中的工作,所以我知道点击处理程序将在提交后添加以提供响应等。目前我正在寻求确保将表单中的条目传递到电子表格。感谢您的帮助。

//Setting the spreadshet ID and style of the form
  var submissionSSkey = 'PUT YOUR KEY HERE'
  var PanelStyle = {'background':'#c0d6e4','padding':'40px','borderStyle':'ridge','borderWidth':'15PX','borderColor':'#31698a'}

// Script-as-app template.
function doGet(e) {
  //Creating the Appplication
  var app = UiApp.createApplication();


  //Creating panels to house the web form, instructional text, data pickers and setting style
  var vertPanel = app.createVerticalPanel().setTitle('XYX Company PTO Request Form').setStyleAttributes(PanelStyle).setPixelSize(350,250);
  var mainPanel = app.createFormPanel().setPixelSize(350,150);
  var grid = app.createGrid(4,4).setId('ptogrid');
  var ptoStart = app.createDateBox().setWidth('200').setName('ptoStartDate');
  var ptoEnd = app.createDateBox().setWidth('200').setName('ptoEndDate');
  var submitButton = app.createSubmitButton('<B>Submit</B>');

  //Assigning widgets to the grid for positioning
  grid.setText(1, 0, 'PTO Start Date')
  .setWidget(1, 1, ptoStart)
  .setText(2, 0, "PTO End Date")
  .setWidget(2, 1, ptoEnd)
  .setText(3, 0, '')
  .setWidget(3, 1, submitButton)

  //Instructions for completion of the PTO form by users.
  vertPanel.add(app.createHTML("<b>PTO Request Form</b>"));
  vertPanel.add(mainPanel);
  vertPanel.add(app.createHTML("<br><b>Instructions:</b></br>" +
                          "<p>Select the starting date and the ending date for your PTO request. "+
                          "If you are taking a single day of PTO enter the starting and ending date as the same date. "+
                           "Click Submit once you've enter the dates.  A request will be sent to your manager for reivew / approval.</p>"));

  //Grabbing active users session information in order to look up user group assignment and manager
  var employee = Session.getActiveUser().getEmail();
  //Uses the UserManager class to get info by passing in the getActive user from base class
  var userFirst = UserManager.getUser(Session.getActiveUser()).getGivenName();
  var userLast = UserManager.getUser(Session.getActiveUser()).getFamilyName();
  var wholeName = userFirst +" "+ userLast;

  mainPanel.add(grid);
  app.add(vertPanel);
  return app;
}

function doPost(e) {
  var app = UiApp.getActiveApplication();
  var ptoStart = e.parameter.ptoStartDate;
  var ptoEnd = e.parameter.ptoEndDate;
  //var wholeName = e.parameter;
  var timeStamp = new Date();


  //Access spreadsheet store values
  var sheet = SpreadsheetApp.openById(submissionSSkey).getSheetByName('PTO Requests');
  var lastRow = sheet.getLastRow();
  var targetRange = sheet.getRange(lastRow+1, 1, 1, 11).setValues([[timeStamp,ptoStart,ptoEnd]]);

  app.close();
  return app;
}

1 个答案:

答案 0 :(得分:0)

我很确定错误来自spreadsheet IDsheet name或范围定义,请仔细检查这些参数,看看是否能解决问题。

我使用错误的值检查了我的帐户,并且它产生了与您相同的问题,它按预期正常工作。


编辑:您的评论似乎证实......(当我回答时没有看到它......)

注意:通过查看脚本编辑器UI中的执行脚本很容易找到错误,它甚至会为您提供发生错误的代码行。