Когда getuserdates()
на стороне скрипта Google Apps возвращает значение ["12/13/2019", "12/14/2019", "12/16/2019", "12/17/2019", "12/24/2019"]
, userdates
из var userdates = <?= getuserdates(); ?>
равно 12/13/2019,12/14/2019,12/16/2019,12/17/2019,12/24/2019
типа строки. Я думал, что из-за этого ваш скрипт не работает.
Итак, как один из нескольких ответов, как насчет этого ответа? Пожалуйста, измените JavaScript.html
.
Шаблон 1:
В этом шаблоне используются скриптлеты. Я думал, что эта тема может быть полезна.
От:
var userdates = ["12/13/2019", "12/14/2019", "12/16/2019", "12/17/2019", "12/24/2019"];
Кому:
var userdates = [];
<? var data = getuserdates(); ?>
<? for (var i = 0; i < data.length; i++) { ?>
userdates.push(<?= data[i] ?>);
<? } ?>
- Когда сценарийrun,
userdates
is ["12/13/2019", "12/14/2019", "12/16/2019", "12/17/2019", "12/24/2019"]
. - В качестве еще одного шаблона с использованием скриптлетов, например, если вы хотите использовать
var userdates = <?= getuserdates(); ?>
, вы также можете изменить var userdates = <?= getuserdates(); ?>
на var userdates = <?= getuserdates() ?>.split(",");
.
Шаблон 2:
В этом шаблоне используется google.script.run.
От:
var userdates = ["12/13/2019", "12/14/2019", "12/16/2019", "12/17/2019", "12/24/2019"];
Кому:
google.script.run.withSuccessHandler(userdates => {
$(function() {
$('#datepicker').datepicker({
minDate: "+3W",
maxDate: "+12W",
beforeShowDay: function (date) {
$thisDate = (date.getMonth() + 1) + "/" + date.getDate() + "/" + date.getFullYear();
if ($.inArray($thisDate, userdates) == -1) {
return [true, ""];
} else {
return [false, "", "Unavailable"];
}
}
});
});
}).getuserdates();
- При запуске сценария
userdates
, полученный из getuserdates()
, используется как ["12/13/2019", "12/14/2019", "12/16/2019", "12/17/2019", "12/24/2019"]
.
Примечание:
- В этом случае предполагается, что
getuserdates()
возвращает ["12/13/2019", "12/14/2019", "12/16/2019", "12/17/2019", "12/24/2019"]
.
Ссылки:
Если я неправильно понял ваш вопрос и это не то направление, в котором вы хотите, я приношу свои извинения.
Редактировать 1:
О проблеме 1:
О причине возникновения ошибки Uncaught SyntaxError: Unexpected token '<'
, причина этой проблемы iс <?!= include('JavaScript'); ?>
. Поэтому, пожалуйста, измените следующим образом.
С:
</div>
<?!= include('JavaScript'); ?>
</body>
Кому:
</div>
<script>
var userdates = [];
<? var data = getuserdates(); ?>
<? for (var i = 0; i < data.length; i++) { ?>
userdates.push(<?= data[i] ?>);
<? } ?>
</script>
<?!= include('JavaScript'); ?>
</body>
- В этом случае, пожалуйста, не добавляйте
<script>###</script>
кJavaScript
из <?!= include('JavaScript'); ?>
. - К сожалению, кажется, что скриптлеты нельзя использовать в скриплетах.
О проблеме 2:
О причинечто [""12/11/2019"", ""12/15/2019"", ""12/16/2019"", ""12/17/2019"", ""12/24/2019""]
возвращается из getuserdates()
, причина этой проблемы userdates.push('"' + datasheetData[i][5]+ '"');
. Поэтому, пожалуйста, измените следующим образом.
С:
userdates.push('"' + datasheetData[i][5]+ '"');
С:
userdates.push(datasheetData[i][5]);
Редактировать 2:
Когда используется шаблон 1,Сценарий заключается в следующем. О getuserdates()
стороны ГАЗА, пожалуйста, измените с userdates.push('"' + datasheetData[i][5]+ '"');
на userdates.push(datasheetData[i][5]);
. И, пожалуйста, измените сторону HTML и Javascript следующим образом.
HTML & Javascript: Page.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/themes/cupertino/jquery-ui.css">
<?!= include('Stylesheet'); ?>
</head>
<body>
<div class="demo" >
<h1>jQuery datepicker</h1>
<p>click here : <input type="text" name="date" id="datepicker" /></p>
</div>
<script>
var userdates = [];
<? var data = getuserdates(); ?>
<? for (var i = 0; i < data.length; i++) { ?>
userdates.push(<?= data[i] ?>);
<? } ?>
</script>
<?!= include('JavaScript'); ?>
</body>
</html>
HTML & Javascript: JavaScript.html
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<script>
$(function() {
$('#datepicker').datepicker({
minDate: "+3W",
maxDate: "+12W",
beforeShowDay: function (date) {
$thisDate = (date.getMonth() + 1) + "/" + date.getDate() + "/" + date.getFullYear();
if ($.inArray($thisDate, userdates) == -1) {
return [true, ""];
} else {
return [false, "", "Unavailable"];
}
}
});
});
</script>