GVKun编程网logo

根据所选内容自动填充表单中的字段,并从电子表格中获取数据 Google Apps脚本端:Code.gs HTML&Javascript面:index.html

4

在本文中,我们将带你了解根据所选内容自动填充表单中的字段,并从电子表格中获取数据GoogleApps脚本端:Code.gsHTML&Javascript面:index.html在这篇文章中,同时我们还

在本文中,我们将带你了解根据所选内容自动填充表单中的字段,并从电子表格中获取数据 Google Apps脚本端:Code.gs HTML&Javascript面:index.html在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的.net 框架设置 swagger UI 指向 index.html 而不是 swagger/ui/index、CI框架去除indexphp excel index index finger z index、dedecms标签 完美解决dedecms中的[html][/html]和[code][/code]问题、Google Apps脚本:MailApp.sendEmail除了TEXT和HTML文件外什么也不能发送,别无其他? HTML&Javascript方面: Google Apps脚本方面: HTML&Javascript方面: Google Apps脚本方面:

本文目录一览:

根据所选内容自动填充表单中的字段,并从电子表格中获取数据 Google Apps脚本端:Code.gs HTML&Javascript面:index.html

根据所选内容自动填充表单中的字段,并从电子表格中获取数据 Google Apps脚本端:Code.gs HTML&Javascript面:index.html

如何解决根据所选内容自动填充表单中的字段,并从电子表格中获取数据 Google Apps脚本端:Code.gs HTML&Javascript面:index.html

我已经使用GAS完成了一个Web应用程序,该应用程序将提交的数据发送到电子表格A。
还有一个选择选项,可从A列中的另一个电子表格B(“ xxx”)动态获取一些数据。

这是代码:

在代码中。gs:

function address() {
  var sheet   =  SpreadsheetApp.openById("xxx").getSheetByName("Sheet3");
  var lastRow = sheet.getLastRow();
  var myRange = sheet.getRange("A1:A" + lastRow); 
  var data    = myRange.getValues();
  var optionsHTML = "";
  for (var i = 0; i < data.length; i+=1) {
    optionsHTML += ''<option>'' + data[i][0] + ''</option>'';
  };
  return optionsHTML;
}

在Index.html中:

<selectname="test" id="test">
 <?!= address(); ?>
</select>

我将根据与选择选项中Col A中的值相对应的B e C列,以表格的形式自动填充其他两个字段。

例如,如果在电子表格B(“ xxx”)的选择选项中我选择“意大利”,则还将存在两个用户不可编辑的字段,其中包含数据“ Tom”和“ Red”。

+-----------------------+---------+-------+
| Col A (Select Option) |  Col B  | Col C |
+-----------------------+---------+-------+
| Italy                 | Tom     | Red   |
| USA                   | Michael | Green |
| Africa                | Anna    | Blue  |
+-----------------------+---------+-------+

(输出)

Output:

我该如何进行?

更新1 (我正在尝试Tanaike的解决方案)

Code.gs

function doGet(request) {
  return HtmlService.createTemplateFromFile(''Index'')
      .evaluate();
}

/* @Include JavaScript and CSS Files */
function include(filename) {
  return HtmlService.createHtmlOutputFromFile(filename)
      .getContent();
}

/* @Process Form */
function processForm(formObject) {
  var url = "xxxx";
  var ss = SpreadsheetApp.openByUrl(url);
  var ws = ss.getSheetByName("Data");
  
  ws.appendRow([formObject.azienda,formObject.test,formObject.field1,formObject.field2]);
}

function address() {
  var sheet   =  SpreadsheetApp.openById("xxxx").getSheetByName("Sheet3");
  var lastRow = sheet.getLastRow();
  var myRange = sheet.getRange("A2:C" + lastRow);  // Modified
  var data    = myRange.getValues();
  var optionsHTML = "";
  for (var i = 0; i < data.length; i+=1) {
    optionsHTML += `<option data-values="${data[i][1]},${data[i][2]}">${data[i][0]}</option>`;  // Modified
  };
  return optionsHTML;
}

Index.html

<!DOCTYPE html>
<html>
    <head>
        <base target="_top">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    </head>
    <body>
        <div>
            <div>
                <div>
                    <form id="myForm" onsubmit="handleFormSubmit(this)">
                        <p>Contact Details</p>

                        <div>
                            <div>
                                <label for="azienda">Azienda</label>
                                <input type="text"id="azienda" name="azienda" required="">
                            </div>
                            
                        <div>
                             <label for="test">Ateco 1</label>
                             <selectname="test" id="test">
                             <?!= address(); ?>
                             </select>
                        </div>
                        
                        <div>
                            <label for="field1">Field1</label>
                            <input type="text"id="field1" name="field1" disabled="disabled">
                        </div>
                        
                        <div>
                            <label for="field2">Field2</label>
                            <input type="text"id="field2" name="field2" disabled="disabled">
                        </div>
                        
                    </div>

                        <button type="submit">Inserisci in Master Leads</button>
                    </form>
                    <div id="output"></div>
                </div>
            </div>      
        </div>
    </body>
  <?!= include(''JavaScript''); ?>
</html>

Javascript.html

<script>
  // Prevent forms from submitting.
  function preventFormSubmit() {
    var forms = document.querySelectorAll(''form'');
    for (var i = 0; i < forms.length; i++) {
      forms[i].addEventListener(''submit'',function(event) {
      event.preventDefault();
      });
    }
  }
  window.addEventListener(''load'',preventFormSubmit);    
      
      
  function handleFormSubmit(formObject) {
    google.script.run.processForm(formObject);
    document.getElementById("myForm").reset();
  }
  
  function setValues(select) {
  const [v1,v2] = select.options[select.selectedindex].dataset.values.split(",");
  document.getElementById("field1").value = v1;
  document.getElementById("field2").value = v2;
}

  const select = document.getElementById("test");
  setValues(select);
  select.addEventListener("change",() => setValues(select));

</script>

解决方法

我相信您的目标如下。

  • 当选择的选项,这是列“A”的值,您想从列“B”和“C”的值设置为与只读输入标记。

修改点:

  • 在此修改中,当address()<?!= address(); ?>上运行时,将列“ A”到“ C”的值设置为选项。列“ B”和“ C”的值设置为定制属性。在HTML方面,您将按预期disabled="disabled"添加2个输入标签。
  • 选择其他选项时,使用Java脚本将“ B”和“ C”列的值设置为2个输入标签。
  • 在电子表格的示例值中,似乎第一行是标题行。

修改脚本后,它如下所示。

修改后的脚本:

Google Apps脚本端:Code.gs

function address() {
  var sheet   =  SpreadsheetApp.openById("xxx").getSheetByName("Sheet3");
  var lastRow = sheet.getLastRow();
  var myRange = sheet.getRange("A2:C" + lastRow);  // Modified
  var data    = myRange.getValues();
  var optionsHTML = "";
  for (var i = 0; i < data.length; i+=1) {
    optionsHTML += `<option data-values="${data[i][1]},${data[i][2]}">${data[i][0]}</option>`;  // Modified
  };
  return optionsHTML;
}

HTML&Javascript面:index.html

在此修改中,添加了2个输入标签和Javascript。

<selectname="test" id="test">
  <?!= address(); ?>
</select>
<input type="text" id="field1" disabled="disabled">
<input type="text" id="field2" disabled="disabled">

<script>
function setValues(select) {
  const [v1,v2] = select.options[select.selectedIndex].dataset.values.split(",");
  document.getElementById("field1").value = v1;
  document.getElementById("field2").value = v2;
}

const select = document.getElementById("test");
setValues(select);
select.addEventListener("change",() => setValues(select));
</script>

注意:

  • 请在启用V8的情况下使用此Google Apps脚本。

.net 框架设置 swagger UI 指向 index.html 而不是 swagger/ui/index

.net 框架设置 swagger UI 指向 index.html 而不是 swagger/ui/index

如何解决.net 框架设置 swagger UI 指向 index.html 而不是 swagger/ui/index?

在我们所有使用 swagger 的 .net 核心项目中,要访问它,我们只需转到 URL/index.html。但是,出于某种原因,.net 框架 swagger 指向 URL/swagger/ui/index。我该如何更改它以使其与我的其他项目保持一致。这是我的代码:

public class WebApi
{
    public void Configuration(IAppBuilder app)
    {
        var config = new HttpConfiguration();
        config.EnableCors(new EnableCorsAttribute("*","*","*"));
        config.MapHttpAttributeRoutes();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",routeTemplate: "api/{controller}/{id}",defaults: new { id = RouteParameter.Optional }
        );

        config.EnableSwagger(c =>
        {
            c.SingleApiVersion("v1","stuff");
        })
            .EnableSwaggerUi(c =>
            {
                c.DocumentTitle("Swagger UI");
            });

        app.UseWebApi(config);

        app.UseCors(CorsOptions.AllowAll);
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

CI框架去除indexphp excel index index finger z index

CI框架去除indexphp excel index index finger z index

转自:http://zhidao.baidu.com/link?url=vmpvphh36efxqgr65dit9hvmolh_kha333fceqk_vqibyvxrxm0weewsllfsv-8oenpcbt31yosgfgqtxhvcwczivukbyfadb_jgndmskdu

正文:

<span>apache环境下:
通过 .htaccess 文件来设置一些简单的规则删除它。下面是一个例子,使用“negative”方法将非指定内容进行重定向:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

如果你的项目不在根目录请把上面这一句改为:RewriteRule ^(.*)$ index.php/$1 [L]
在上面的例子中,可以实现任何非 index.php、images 和 robots.txt 的 HTTP 请求都被指向 index.php。

Nginx环境下:
修改nginx配置文件,在SERVER段中添加如下代码:
location /{
   if (-f $request_filename) {
       expires max;
       break;
   }
   if (!-e $request_filename) {
       rewrite ^/(.*)$ /index.php/$1 last;
   }
}</span>
登录后复制

以上就介绍了CI框架去除indexphp,包括了index方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

dedecms标签 完美解决dedecms中的[html][/html]和[code][/code]问题

dedecms标签 完美解决dedecms中的[html][/html]和[code][/code]问题

终于解决了完美解决dedecms中的[html][/html]和[code][/code]问题,因为我的php不太熟练,所以正则搞了好几天,才能好,这次主要修改了discuz5.5和dedecms3.1的运行功能和code功能,好开心啊,开始新站的数据转移工作和新站模版制作了,到时候一个全新的本站了,如果有问题,大家可以交流下,现在blueidea和51js和dedecms的论坛问这个问题他们没有回答,但不影响效果,也让我自己学到了东西。

以上就介绍了dedecms标签 完美解决dedecms中的[html][/html]和[code][/code]问题,包括了dedecms标签方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Google Apps脚本:MailApp.sendEmail除了TEXT和HTML文件外什么也不能发送,别无其他? HTML&Javascript方面: Google Apps脚本方面: HTML&Javascript方面: Google Apps脚本方面:

Google Apps脚本:MailApp.sendEmail除了TEXT和HTML文件外什么也不能发送,别无其他? HTML&Javascript方面: Google Apps脚本方面: HTML&Javascript方面: Google Apps脚本方面:

如何解决Google Apps脚本:MailApp.sendEmail除了TEXT和HTML文件外什么也不能发送,别无其他? HTML&Javascript方面: Google Apps脚本方面: HTML&Javascript方面: Google Apps脚本方面:

我正在尝试将文件附加到通过MailApp.sendEmail()在Google Apps脚本中发送的电子邮件中。在浏览器JavaScript中,我使用此代码手动读取了文件,因为我已经处理了HTML表单中的“提交”按钮,并且可以正常工作:

  var file = document.getElementById(''myfile'');
  var fileInfo = [];
  if(file.files.length)        // if there is at least 1 file
  {
    if (file.files[0].size < maxEmailAttachmentSize)  // and its size is < 25M
    {
      var reader = new FileReader();
      reader.onload = function(e)
      {
        fileInfo[0] = e.target.result;
      };
      reader.readAsBinaryString(file.files[0]);
      fileInfo[1] = file.files[0].name;
      fileInfo[2] = file.files[0].type;
      fileInfo[3] = file.files[0].size;
    }
    console.log(fileInfo);   // here I see the full file and info. All looks correct.
  }

然后将其发送到服务器。

  google.script.run.withSuccessHandler(emailSent).sendAnEmail(fileInfo);

在服务器上,我拉出字段并像这样发送电子邮件:

  var fname    = fileInfo[1];
  var mimeType = fileInfo[2];
  var fblob    = Utilities.newBlob(fileInfo[0],mimeType,fname);
  // all looks right in the Logger at this point

  try {
    GmailApp.sendEmail(emaiRecipient,emailSubject,emailBody,{
        name: ''Email Sender'',// email sender
        attachments: [fblob]
      }
    );
  catch …

当该文件是文本文件或HTML文件时,此方法工作正常,但在其他文件中则无效。该文件已发送,但是它是空的并且显然已损坏。谁能看到此代码出了什么问题? (它也不能与MailApp.sendEmail()一起使用。)我确实在另一个stackoverflow帖子中看到文档必须保存一次,但这绝对不是我想要的。没有其他办法吗?我想念什么?

解决方法

修改点:

  • FileReader用于异步过程。 Rubén''s comment已经提到了这一点。
  • 在当前阶段,当二进制数据发送到Google Apps脚本端时,似乎需要将其转换为字符串和字节数组。 TheMaster''s comment已经提到了这一点。
  • 在这种情况下,为了使用您的Google Apps脚本,我认为将文件内容转换为int8Array的字节数组可能是合适的。
    • 为此,我使用了readAsArrayBuffer而不是readAsBinaryString

当以上几点反映到您的脚本时,它如下所示。

修改后的脚本:

HTML&Javascript方面:

// Added
function getFile(file) {
  return new Promise((resolve,reject) => {
    var reader = new FileReader();
    reader.onload = (e) => resolve([...new Int8Array(e.target.result)]);
    reader.onerror = (err) => reject(err);
    reader.readAsArrayBuffer(file);
  });
}

async function main() {  // <--- Modified
  var file = document.getElementById(''myfile'');
  var fileInfo = [];
  if(file.files.length) {
    if (file.files[0].size < maxEmailAttachmentSize) {
      fileInfo[0] = await getFile(file.files[0]);  // <--- Modified
      fileInfo[1] = file.files[0].name;
      fileInfo[2] = file.files[0].type;
      fileInfo[3] = file.files[0].size;
    }
    console.log(fileInfo);   // here I see the full file and info. All looks correct.
    google.script.run.withSuccessHandler(emailSent).sendAnEmail(fileInfo);
  }
}
  • 尽管从您的问题中不能确定您的整个脚本,但在修改后的脚本中,它假设运行了main()。运行main()时,文件将转换为字节数组并将其放入fileInfo[0]
  • fileInfo的Google Apps脚本一侧,var fblob = Utilities.newBlob(fileInfo[0],mimeType,fname);具有适用于Google Apps脚本的正确Blob。

Google Apps脚本方面:

在此修改中,您的Google Apps脚本未修改。

参考文献:

  • FileReader
  • FileReader.readAsArrayBuffer()

已添加:

这段代码看起来不错,但是我们不能使用它,因为我们运行在Rhino JavaScript引擎而不是V8上。我们不支持较新的JavaScript语法。您能否举一个例子说明如何使用较旧的语法? Ref

根据您的上述评论,我进行了如下修改。

修改后的脚本:

HTML&Javascript方面:

function main() {
  var file = document.getElementById(''myfile'');
  var fileInfo = [];
  if(file.files.length) {
    if (file.files[0].size < maxEmailAttachmentSize) {
      var reader = new FileReader();
      reader.onload = function(e) {
        var bytes = new Int8Array(e.target.result);
        var ar = [];
        for (var i = 0; i < bytes.length; i++) {
          ar.push(bytes[i]);
        }
        fileInfo[0] = ar;
        fileInfo[1] = file.files[0].name;
        fileInfo[2] = file.files[0].type;
        fileInfo[3] = file.files[0].size;
        console.log(fileInfo);   // here I see the full file and info. All looks correct.
        google.script.run.withSuccessHandler(emailSent).sendAnEmail(fileInfo);
      }
      reader.onerror = function(err) {
        reject(err);
      }
      reader.readAsArrayBuffer(file.files[0]);
    }
  }
}

Google Apps脚本方面:

在此修改中,您的Google Apps脚本未修改。

今天关于根据所选内容自动填充表单中的字段,并从电子表格中获取数据 Google Apps脚本端:Code.gs HTML&Javascript面:index.html的讲解已经结束,谢谢您的阅读,如果想了解更多关于.net 框架设置 swagger UI 指向 index.html 而不是 swagger/ui/index、CI框架去除indexphp excel index index finger z index、dedecms标签 完美解决dedecms中的[html][/html]和[code][/code]问题、Google Apps脚本:MailApp.sendEmail除了TEXT和HTML文件外什么也不能发送,别无其他? HTML&Javascript方面: Google Apps脚本方面: HTML&Javascript方面: Google Apps脚本方面:的相关知识,请在本站搜索。

本文标签: