Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Jquery 用于从表单输入创建gdoc简历的HTML服务应用程序_Jquery_Google Apps Script - Fatal编程技术网

Jquery 用于从表单输入创建gdoc简历的HTML服务应用程序

Jquery 用于从表单输入创建gdoc简历的HTML服务应用程序,jquery,google-apps-script,Jquery,Google Apps Script,我一直在为我的公司开发这个应用程序。它基本上从使用HTML服务托管的表单中获取输入,并通过带有输入的文档创建格式化的简历。我遇到的问题是: 在我的HTML表单中,我包含了一个按钮,允许表单添加更多字段(用于职业历史记录)。我编写了一个for循环,循环遍历表单这个特定部分的所有输入,并将它们附加到googledoc。当职业列表>3时,脚本无法将其写入文档 当我在列表上运行记录器(empHist)时,我看到它正在查看所有数据,但它不会将所有数据写入文档。想法 以下是所有代码: 代码.gs funct

我一直在为我的公司开发这个应用程序。它基本上从使用HTML服务托管的表单中获取输入,并通过带有输入的文档创建格式化的简历。我遇到的问题是:

在我的HTML表单中,我包含了一个按钮,允许表单添加更多字段(用于职业历史记录)。我编写了一个for循环,循环遍历表单这个特定部分的所有输入,并将它们附加到googledoc。当职业列表>3时,脚本无法将其写入文档

当我在列表上运行记录器(empHist)时,我看到它正在查看所有数据,但它不会将所有数据写入文档。想法

以下是所有代码:

代码.gs

function doGet() {
  var html = HtmlService.createTemplateFromFile('page').evaluate()
      .setSandboxMode(HtmlService.SandboxMode.NATIVE)
      .setTitle('ResuMake Test');
  return html
}

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

function processForm(form) {  
  var formInput = {
    firstName:   form.canFirst,
    lastName:    form.canLast,
    sizzle:      form.sizzle,
    clinDoc:     form.clinDoc,
    stork:       form.stork,
    beacon:      form.beacon,
    anesthesia:  form.anesthesia,
    empName:     form.empName,
    empYears:    form.empYears,
    description: form.description,
    school:      form.school,
    eduYears:    form.eduYears,
    degree:      form.degree
  };

  var certs = [formInput.clinDoc, formInput.stork, formInput.beacon, formInput.anesthesia];
  var empHist = [formInput.empName, formInput.empYears, formInput.description];

  var gDoc   = DocumentApp.create("Resume for: " + formInput.firstName + " " + formInput.lastName);
  var doc    = gDoc.getBody();
  var img    = UrlFetchApp.fetch('http://i.imgur.com/s6wnamr.jpg');

  var title  = {};
  var h1     = {};
  var plain  = {};

  title[DocumentApp.Attribute.FONT_SIZE]   = 21;

  h1[DocumentApp.Attribute.FONT_SIZE]      = 16; 

  plain[DocumentApp.Attribute.FONT_SIZE]   = 11;


  //Logo
  doc.setMarginTop(25).appendImage(img).setHeight(50).setWidth(150); 

  doc.appendParagraph(formInput.firstName + " " + formInput.lastName)
     .setAlignment(DocumentApp.HorizontalAlignment.CENTER).setAttributes(title);

  //Candidate Name
  doc.appendParagraph("Candidate Summary").setAttributes(h1);

  //Sizzle
  doc.appendParagraph(formInput.sizzle).setAttributes(plain);

  //Epic Certs
  doc.appendParagraph("Epic Certifications").setAttributes(h1); 

  for (var i = 0; i < certs.length; i++) {
    if (certs[i] != null) {
      var listItem = doc.appendListItem(certs[i]).setGlyphType(DocumentApp.GlyphType.BULLET).setAttributes(plain);
    }
  }

  //Employment History
  doc.appendParagraph("Employment History").setAttributes(h1);

  for (var e = 0; e  <= empHist.length + 1; e++) {
    doc.appendTable([[empHist[0][e], empHist[1][e]]]).setAttributes(h1)
       .setBorderWidth(0);
    doc.appendParagraph(empHist[2][e]).setAttributes(plain);
  }

 //Education 
 doc.appendParagraph(formInput.school + " " + formInput.eduYears).setAttributes(h1);
 doc.appendParagraph(formInput.degree).setAttributes(h1);

}
函数doGet(){
var html=HtmlService.createTemplateFromFile('page').evaluate()
.setSandboxMode(HtmlService.SandboxMode.NATIVE)
.setTitle(“重新进行试验”);
返回html
}
函数包括(文件名){
返回HtmlService.createHtmlOutFromFile(文件名)
.getContent();
}
函数processForm(form){
变量formInput={
名字:form.canFirst,
姓氏:form.canLast,
sizzle:form.sizzle,
clinDoc:form.clinDoc,
鹳:形态。鹳,
灯塔:形式。灯塔,
麻醉:形式麻醉,
empName:form.empName,
empeyers:form.empeyers,
description:form.description,
学校:形式学校,
教育年限:form.eduYears,
学位:形式学位
};
var certs=[formInput.clinDoc,formInput.stork,formInput.beacon,formInput.Animation];
var empHist=[formInput.empName,formInput.empYears,formInput.description];
var gDoc=DocumentApp.create(“简历为:“+formInput.firstName+”+formInput.lastName”);
var doc=gDoc.getBody();
var img=UrlFetchApp.fetch('http://i.imgur.com/s6wnamr.jpg');
var title={};
var h1={};
var平原={};
标题[DocumentApp.Attribute.FONT\u SIZE]=21;
h1[DocumentApp.Attribute.FONT\u SIZE]=16;
普通[DocumentApp.Attribute.FONT\u SIZE]=11;
//标志
文件setMarginTop(25)、appendImage(img)、setHeight(50)、setWidth(150);
文档附件段落(formInput.firstName+“”+formInput.lastName)
.setAlignment(DocumentApp.HorizontalAlignment.CENTER).setAttributes(标题);
//候选人姓名
文件附录段落(“候选摘要”).setAttributes(h1);
//嘶嘶声
文档附件段落(formInput.sizzle).setAttributes(普通);
//史诗证书
文件附录(“Epic认证”).setAttributes(h1);
对于(变量i=0;i
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<style>
    .row  {padding: 5px;}
    .pad  {padding: 8px;}
    .body {width: 800px; height: 600px;}
</style>
<div class="container body">
    <form id="root">
        <div class="row nameRow">
            <h3>Candidate Name</h3>

            <div class="col-xs-6">
                <input type="text" class="form-control" name="canFirst" placeholder="First Name">
            </div>

            <div class="col-xs-6">
                <input type="text" class="form-control" name="canLast" placeholder="Last Name">
            </div>
        </div>

        <div class="row sizlRow">
            <h3>Candidate Summary</h3>
            <div class="col-sm-4">
                <textarea class="form-control" rows="3" placeholder="Candidate Summary" name="sizzle"></textarea>
            </div>
        </div>

        <div class="row modRow">
            <h3>Epic Modules</h3>
            <div class="col-sm-4">

                <label class="checkbox-inline">
                    <input type="checkbox" name="clinDoc" value="ClinDoc">ClinDoc
                </label>

                <label class="checkbox-inline">
                    <input type="checkbox" name="stork" value="Stork">Stork
                </label>

                <label class="checkbox-inline">
                    <input type="checkbox" name="beacon" value="Beacon">Beacon
                </label>

                <label class="checkbox-inline">
                    <input type="checkbox" name="anesthesia" value="Anesthesia">Anesthesia
                </label>
            </div>
        </div>

        <div class="row emphistRow">
            <h3>Employment History</h3>

            <div class="col-xs-6 pad">
                <input type="text" class="form-control input-sm" name="empName" placeholder="Employer / Org">

            </div>

            <div class="col-xs-6 pad">
                <input class="form-control input-sm" name="empYears"type="text" placeholder="Years">
            </div>

            <div class="container pad">
                <textarea class="form-control" name="description" rows="3" placeholder="Job Description"></textarea>
            </div>
        </div>
        <button type="button" id="addEmp" class="btn btn-default">Add Another Job</button>

        <div class="row eduRow">
            <h3>Education</h3>

            <div class="col-xs-6 pad">
                <input type="text" class="form-control input-sm" name="school" placeholder="School / Institution">

            </div>

            <div class="col-xs-6 pad">
                <input class="form-control input-sm" name="eduYears" type="text" placeholder="Years">
            </div>

            <div class="container pad">
                <textarea class="form-control" rows="3" name="degree" placeholder="Degree Info"></textarea>
            </div>

        </div>
        <div class="row">
            <div class="col-xs-6">
                <button type="button" class="btn btn-success btn-block" onclick="google.script.run.processForm(document.getElementById('root'))">resuMake!</button>
            </div>
            <div class="col-xs-6">
                <button type="button" class="btn btn-danger btn-block" onclick="google.script.host.close()">Close</button>
            </div>
        </div>
    </form>
</div>



<script>
google.script.run.processForm();
</script>

<?!= include("script"); ?>
<script>
var orgName = '<div class="col-xs-6 pad">' +
               ' <input type="text" class="form-control input-sm" name="empName" placeholder="Employer / Org">' +

            '</div>' +

            '<div class="col-xs-6 pad">' +
               ' <input class="form-control input-sm" name="empYears" type="text" placeholder="Years">' +
            '</div>' +

            '<div class="container pad">' +
                '<textarea class="form-control" name="description" rows="3" placeholder="Job Description"></textarea>' +
           ' </div>'

$('#addEmp').click(function(){
  var addEmpButton = $(this);
  $('.emphistRow').append(orgName); 
});
</script>