如何在GAS的doGet方法中将用户名和邮箱传递到HTML表单中
解决方案
使用Google Apps Script自带的HTML模板功能即可实现参数传递,具体操作如下:
1. 修改doGet函数
首先修正代码误区:doGet 用于处理GET请求,请求参数直接通过e.parameter获取,不需要读取postData(postData仅在POST请求的doPost方法中存在)。调整后的代码如下:
function doGet(e) { // 从GET请求参数中获取用户名和邮箱,你也可以替换为自己拆分得到的name、email变量 const name = e.parameter.username || ''; const email = e.parameter.email || ''; // 加载HTML模板,将变量挂载到模板对象上 const template = HtmlService.createTemplateFromFile('index'); template.name = name; template.email = email; // 渲染模板并返回 return template.evaluate() .setSandboxMode(HtmlService.SandboxMode.IFRAME); }
2. 修改index.html表单代码
给两个输入框的value属性绑定模板变量即可自动填充默认值,如果你需要隐藏输入框,直接把type属性改为hidden即可:
<form id="uploaderForm"> <label for="uploaderForm">Upload plusieur fichiers</label> <div> <!-- 绑定name变量作为默认值,需要隐藏可把type改为hidden --> <input type="text" name="applicantName" id="applicantName" placeholder="nom" value="<?= name ?>"> </div> <div> <!-- 绑定email变量作为默认值,需要隐藏可把type改为hidden --> <input type="text" name="applicantEmail" id="applicantEmail" placeholder="Email" value="<?= email ?>"> </div> <div> <input type="file" name="filesToUpload" id="filesToUpload" multiple> <input type="button" value="Submit" onclick="uploadFiles()"> </div> </form>
实现逻辑说明
- HtmlService的模板渲染功能支持将服务端变量通过
template.变量名的方式传递给前端模板 - 模板中使用
<?= 变量名 ?>的语法即可输出服务端传递的变量值,加载页面时会自动替换为实际内容 - 变量设置默认空值可以避免参数缺失时页面出现undefined的异常
内容的提问来源于stack exchange,提问作者abderrahmane mya
相关产品推荐
相关产品推荐

