Ich versuche, jeden Wert aus dem Array allArtistsArray
, die Werte aus einer Kalkulationstabelle erhält, und haben sie als eine ungeordnete Liste mit buttonTemplate
zuerst, und dann jeden Wert in der Kalkulationstabelle danach angezeigt.jeden Wert von for-Schleife zurückgeben?
Das Problem, das ich habe, ist, dass nur der erste Wert aus der Tabelle zurückgegeben und in der Web-App angezeigt wird. Wie bekomme ich jeden Wert nach buttonTemplate
angezeigt?
Was angezeigt Sein ist:
* buttonTemplate
or
* value 1 from spreadsheet
Was ich versuche erhalten angezeigt:
* buttonTemplate
* value 1 from spreadsheet
* value 2 from spreadsheet
* value 3 from spreadsheet
* etc
index.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<?!= getContent("js") ?>
<?!= getContent("css") ?>
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Abel">
</head>
<body>
<div id="artistTabs">
<ul id="artistList">
<?!= createArtistList(); ?>
</ul>
</div>
</body>
</html>
code.gs
var ss = SpreadsheetApp.openById('id');
var sheet = ss.getSheets()[0];
function doGet()
{
return HtmlService.createTemplateFromFile('index').evaluate();
}
function getContent(filename)
{
return HtmlService.createHtmlOutputFromFile(filename).getContent();
}
function createArtistList()
{
var buttonStartingRow = 2;
var buttonStartingColumn = 1;
var buttonCell = sheet.getRange(buttonStartingRow, buttonStartingColumn).getValue();
var x = '<li><a onClick="addArtist(); return false;" href="">';
var y = buttonCell;
var z = '</a></li>';
var buttonTemplate = x + y + z;
//return buttonTemplate;
var startingRow = 2;
var startingColumn = 1;
var howManyRows = sheet.getLastRow() - 1;
var howManyColumns = 1;
var allArtistsArray = sheet.getRange(startingRow, startingColumn, howManyRows, howManyColumns).getValues(); //get every name in 1st column after second row
//allArtistsArray = allArtistsArray.filter(function(n){return n[0] !== '' && n[0] !== buttonCell}); //filter 'buttonCell' value and blank rows
//allArtistsArray = allArtistsArray.toString().split(","); //flatten 2d array to 1d array
//Logger.log(allArtistsArray);
for (i = 0; i < allArtistsArray.length; i++)
{
allArtistsArray = allArtistsArray.filter(function(n){return n[0] !== '' && n[0] !== buttonCell}); //filter 'buttonCell' value and blank rows
allArtistsArray = allArtistsArray.toString().split(","); //flatten 2d array to 1d array
if (allArtistsArray == '')
{
Logger.log("array = blank");
break; //leave for loop and only return buttonTemplate ???
}
else
{
var x1 = '<li><a onClick="test(); return false;" href="">';
var z1 = '</a></li>';
var _1 = allArtistsArray[i];
var _2 = x1 + _1 + z1;
Logger.log(_2);
}
}
Logger.log(allArtistsArray);
return buttonTemplate;
}
buttonTemplate ist ein Sollwert aus der Tabelle ('+' oder 'Knopf' oder etwas). buttonTemplate soll zuerst als ungeordnetes Listenelement angezeigt werden und danach die Werte in der Tabelle danach als ungeordnete Listenelemente – user4411473
Siehe oben Bearbeitungen! :) Wenn dies nicht funktioniert, wäre eine vollständige Ausgabe Ihres Debug-Logs auch hilfreich! So können wir alle den Fluss sehen. –
ok ya ich sehe, was du gesagt hast. Es funktioniert, aber ich bekomme eine undefinierte nach dem ButtonTemplate - https://snag.gy/NFs3GJ.jpg – user4411473