Я уже некоторое время бился об эту голову. У меня есть Google Sheet, HTML-форма и JavaScript, который представляет данные на лист. Моя цель состоит в том, чтобы форма отправляла данные на лист, а затем проверяла на листе значение одного из отправленных полей, чтобы увидеть, соответствует ли оно ячейке в столбце. Это значение имеет соответствующее значение, отформатированное как дата в следующем столбце. Если вход ячейки имеет соответствующую дату, которая «просрочена», я хотел бы, чтобы сообщение вернулось на html-страницу в виде всплывающего окна, сообщающего, что срок его действия истек. Есть мысли?
JS:
function submit_form() {
// Check Fields
var complete = true;
var error_color = '#FFD9D9';
var fields = ['first_name','last_name','email','gs_code'];
var row = '';
var i;
for(i=0; i < fields.length; ++i) {
var field = fields[i];
$('#'+field).css('backgroundColor', 'inherit');
var value = $('#'+field).val();
// Validate Field
if(!value) {
if(field != 'message') {
$('#'+field).css('backgroundColor', error_color);
var complete = false;
}
} else {
// Sheet Data
row += '"'+value+'",';
}
}
// Submission
if(complete) {
// Clean Row
row = row.slice(0, -1);
// Config
var gs_sid = ''; // Enter your Google Sheet ID here
var gs_clid = ''; // Enter your API Client ID here
var gs_clis = ''; // Enter your API Client Secret here
var gs_rtok = ''; // Enter your OAuth Refresh Token here
var gs_atok = false;
var gs_url = ';
var gs_body = '{"majorDimension":"ROWS", "values":[['+row+']]}';
// HTTP Request Token Refresh
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://www.googleapis.com/oauth2/v4/token?client_id='+gs_clid+'&client_secret='+gs_clis+'&refresh_token='+gs_rtok+'&grant_type=refresh_token');
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
var response = JSON.parse(xhr.responseText);
var gs_atok = response.access_token;
// HTTP Request Append Data
if(gs_atok) {
var xxhr = new XMLHttpRequest();
xxhr.open('POST', gs_url);
xxhr.setRequestHeader('Content-length', gs_body.length);
xxhr.setRequestHeader('Content-type', 'application/json');
xxhr.setRequestHeader('Authorization', 'OAuth ' + gs_atok );
xxhr.onload = function() {
if(xxhr.status == 200) {
// Success
$('audio#beep')[0].play();
$('#message').hide().html("Bottle has been Entered! Scan next Bottle.").fadeIn().delay('1000').fadeOut();
}
else {
// Fail
$('#message').html('<p>Row Not Added</p><p>Response:<br/>'+xxhr.responseText+'</p>');
}
};
xxhr.send(gs_body);
}
};
xhr.send();
}
}