在本文中,我们将带你了解根据所选内容自动填充表单中的字段,并从电子表格中获取数据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
- .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
我已经使用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 |
+-----------------------+---------+-------+
(输出)
我该如何进行?
更新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?
在我们所有使用 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
转自: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中的[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脚本方面:
我正在尝试将文件附加到通过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脚本方面:的相关知识,请在本站搜索。
本文标签: