.gs (обновлено)
function doGet() {
return HtmlService.createTemplateFromFile('Form.html').evaluate()
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
var scriptProp = PropertiesService.getScriptProperties();
function doPost (e) {
var lock = LockService.getScriptLock();
lock.tryLock(10 * 1000);
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sh = doc.getSheetByName("Sheet1");
var values = sh.getRange(2, 12, sh.getLastRow()-1, 1).getValues();
// Logger.log(values);
try {
var sheet = doc.getSheetByName("OTP");
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
var nextRow = sheet.getLastRow() + 1;
var newRow = headers.map(function(header) {
return header === 'Timestamp' ? new Date() : e.parameter[header]
});
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow]);
var value = newRow[1];
for (var i = 0; i < values.length; i++) {
if (values[i] == value) {
return HtmlService.createTemplateFromFile('Confirmation.html').evaluate()
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
} else {
return HtmlService.createTemplateFromFile('Error.html').evaluate()
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}}}
catch (e) {
return ContentService.createTextOutput(JSON.stringify({ 'result': 'error', 'error': e }))
.setMimeType(ContentService.MimeType.JSON)
}
finally {
lock.releaseLock()
}}
Цель приведенного выше кода состоит в том, чтобы проверить, соответствует ли значение newRow[1]
любому значению ячейки в диапазоне (L2: L) в Sheet1, а затем перенаправить в Подтверждение. html, в противном случае в Ошибка. html на основе оператора if в коде
Теперь проблема заключается в; только если newRow[1]
== первое / верхнее значение в диапазоне (L2: L), пользователь перенаправляется на подтверждение, а любое другое значение ниже указанного в диапазоне перенаправляет пользователя на ошибку
Например: если у нас есть 4 значения в диапазоне L2: L, например: L2: Джон L3: Майк L4: Дженни L5: Том
Если пользователь отправляет Джона как newRow[1]
, перенаправляется на Подтверждение, и это верно без проблема, но
Если пользователь отправляет Майка или Дженни или Тома, перенаправляется на ошибку и это неправильно, потому что новое переданное значение все еще находится в диапазоне и должно перенаправить пользователя на подтверждение
Любая помощь приветствуется. Заранее спасибо