Otrzymuję niezdefiniowaną wartość dla zmiennej o nazwie: name Dowolna pomoc dotycząca przyczyny wyświetlania wyników. Zostanie wyświetlony w rejestratorze, ale nie w index.html lub stronie internetowej po naciśnięciu przycisku wyszukiwania. KodNieokreślone zwroty zmiennych
:
// var names =[]; //I tried using a global variable but with no luck
function SearchFiles(searchTerm) {
var searchFor = "title contains '" + searchTerm + "'";
var owneris = "and '[email protected]' in Owners";
var names = [];
var fileIds = [];
Logger.log(searchFor + " " + owneris);
var files = DriveApp.searchFiles(searchFor + " " + owneris);
while (files.hasNext()) {
var file = files.next();
var fileId = file.getId(); // To get FileId of the file
fileIds.push(fileId);
var name = file.getName();
names.push(name);
}
for (var i = 0; i < names.length; i++) {
//this is showing in the Logger
Logger.log(names[i]);
Logger.log("https://drive.google.com/uc?export=download&id=" + fileIds[i]);
}
}
function returnNames(names) {
return '<h3><b>returnNames has ran.!</b></h3> <br>' + names; // Why does this names variable return undefined???
}
function doGet(e) {
var template = HtmlService.createTemplateFromFile('Index');
return template.evaluate()
.setTitle('Search Drive')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
function processForm(searchTerm) {
var resultToReturn;
Logger.log('processForm was called! ' + searchTerm);
resultToReturn = SearchFiles(searchTerm);
Logger.log('resultToReturn: ' + resultToReturn)
// shows as undefined in the logger
return resultToReturn;
}
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
function displayMessage() {
var searchTerm;
searchTerm = document.getElementById('idSrchTerm').value;
console.log('searchTerm: ' + searchTerm);
google.script.run.processForm(searchTerm);
google.script.run.withSuccessHandler(handleResults).returnNames();
}
function handleResults(searchTerm) {
console.log('Handle Results was called! ');
document.writeln(searchTerm);
}
</script>
</head>
<body>
<input type="text" id="idSrchTerm" name="search">
<input type="button" value="submitButton" name="submitButton" onclick="displayMessage()" />
</body>
</html>
na jakiej linii pojawia się błąd? To może pomóc w debugowaniu problemu. – Rikin
Otrzymuję niezdefiniowane na linii funkcja returnNames (nazwy) - widać, że skomentowałem kilka linii problemy – OblongMedulla
. Najpierw w indeksie nie przekazujesz niczego do returnNames(). Tak więc, gdy funkcja działa, staje się niezdefiniowana i prawdopodobnie drukuje niezdefiniowana. Po drugie myślę, że zakładasz, że nazwy będą dostępne globalnie, których nie widzę. – Rikin