04-204-304-4
早上好
我正在建立一个窗体来处理appscript中的数据库。
我从一个类似的过去的项目得到了一些脚本,所以我可能缺乏参考,但我找不到任何…(对不起)
我已经编码的函数是:
- 在数据库 中创建一行
- 在数据库中搜索一行
- 选择并打开带有 行预填数据的表单
我要编码的函数是:
- 将编辑后的字段保存在原列
我在做这个工作时遇到了麻烦,我总是一无所获,没有错误消息,什么都没有!
数据如下:
04-101-2这可能更容易一些
如果您向数据库添加一个名为has_been_edited的字段,并且该字段为真或假,那么您可以直接访问该字段并测试它是否为真。希望对我不熟悉appscript有帮助。
你好,
谢谢@TheMaster的回答,
我忘了
<input type="hidden" id="num" name="num">
形式。
感谢@Emel和@Wayne的帮助!
修改后的代码如下:
<!DOCTYPE html>
<html>
<body>
<section>
<div>
<button id="edit" onclick="Edit();Fill()">Edit</button>
</div>
<form id="myForm" onsubmit="handleFormSubmit2(this)">
<section>
<div>
<label for="Field1">Field 1 :</label>
<textarea type="text" id="Field1Edit" name="Field1Edit"></textarea>
</div>
<div>
<label for="Field2">Field 2:</label>
<textarea type="text" id="Field2Edit" name="Field2Edit"></textarea>
</div>
<div>
<label for="Field3">Field 3:</label>
<textarea type="text" id="Field3Edit" name="Field3Edit"></textarea>
</div>
<div>
<label for="Field4">Field 4 :</label>
<textarea type="text" id="Field4Edit" name="Field4Edit"></textarea>
</div>
<input type="hidden" id="num" name="num">
</section>
<div>
<button id="Submit" onclick="alert('Your modification(s) have been taken into account !');">Submit</button>
</div>
</form>
<div id="output"></div>
<script>
/* Trigger form */
function Edit() {
document.getElementById('myForm').style.display='block';
}
/* Prefill the fields with their previous values to allow the user to add information in succession */
function Fill() {
var listData2 = JSON.parse(localStorage["Data"]); // Get stored listData
var Field1 = listData2[1];
var Field2 = listData2[2];
var Field3 = listData2[3];
var Field4 = listData2[4];
document.getElementById("Field1Edit").value = Field1;
document.getElementById("Field2Edit").value = Field2;
document.getElementById("Field3Edit").value = Field3;
document.getElementById("Field4Edit").value = Field4;
}
/* Prevent Form 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);
/* Call Process Form 2 and reset the form */
function handleFormSubmit2(formObject) {
google.script.run.processForm2(formObject);
document.getElementById('myForm').reset();
}
</script>
</body>
</html>
和
/* Process Form and replace data in the Sheet */
function processForm2(formObject) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tracker");
var mylist = [formObject.Field1,formObject.Field2,formObject.Field3,formObject.Field4];
var cell = 0; /* Start of the range of modified cells */
// Add data after the opening ones in the corresponding row
for (var i=0; i<mylist.length; i++){
if ((mylist[i]).length > 0){sheet.getRange(formObject.num,cell).setValue(mylist[i])}
cell++;
}
}