2016-05-03 2 views
1

Ich lerne, wie man eine sehr einfache Google Web App erstellt, versuchen, 2 Variablen aus einer Funktion (ein Vorname und Nachname von einem Google Blatt) und geben Sie sie an den HTML-Code zurück, um auf meiner Seite angezeigt zu werden. Es funktioniert nur eine Variable, aber wenn ich versuche, 2 zurückzugeben, wird alles durcheinander gebracht. Jede Hilfe würde sehr geschätzt werden.Kann nicht mehr als einen Parameter von JS zu HTML in Google Web App Skript übergeben

Mein JS-Code:

function doGet() { 

    return HtmlService.createHtmlOutputFromFile('Index') 
     .setSandboxMode(HtmlService.SandboxMode.IFRAME); 
}; 

function grabUser(){ 

    var userEmail = Session.getActiveUser().getEmail(); 
    var SpreadsheetId = '1xxxxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxx'; 
    var SheetName = 'MASTER'; 
    var EmailCol = 7; //keep not that column A=0, B=1... 
    var FNameCol = 1; 
    var SNameCol = 0; 

    // Log the email address of the person running the script. 
Logger.log(userEmail); 

    var ss = SpreadsheetApp.openById(SpreadsheetId); 
    var sheet = ss.getSheetByName(SheetName); 

    var data = sheet.getDataRange().getValues(); // read all data in the sheet 

    for(n=0;n<data.length;++n){ // iterate row by row and examine data in col 
if(data[n][EmailCol].toString()==userEmail){ var FName = data[n][FNameCol]; 
              var SName =data[n][SNameCol]};// return the values of these cells 
} 
    Logger.log(FName); 
    Logger.log(SName); 

return (FName, SName); 

}; 

und dann mein HTML:

<!DOCTYPE html> 
<html> 
    <head> 
    <base target="_top"> 
    <script> 
     function onSuccess(FName,SName) { 
     var div = document.getElementById('output'); 
     div.innerHTML = 'Hello ' + FName + 
      ' Your surname is '+SName; 
     } 

     google.script.run.withSuccessHandler(onSuccess).grabUser(); 
    </script> 
    </head> 
    <body> 
    <div id="output"></div> 
    </body> 
</html> 

Antwort

3

Zwei Parameter werden nicht in der Liste der Argumente der Funktionsdefinition vom Server an den Web-App erlaubt.

auf dieser Für die Dokumentation finden Sie unter:

Apps Script Documentation - Parameters and Return Values

Zitat:

Rechts Parameter und Rückgabewerte sind JavaScript-Primitiven wie eine Zahl, Boolean, String oder null, sowie als JavaScript-Objekte und -Arrays, die aus Primitiven, Objekten und Arrays bestehen.

mehrere Informationen zurück zu übergeben, werden Sie wahrscheinlich ein Array in Ihrem Fall verwenden wollen würde:

return [FName, SName]; 

Für weitere Informationen ist eine gute Option, um alle Daten in ein Objekt zu setzen und dann das Objekt in eine Zeichenkette umwandeln:

var myObject = {'one':'value','two':'value'}; 
myObject = JSON.stringify(myObject); 

return myObject; 
+0

Ehrfürchtig Ja verstehe ich jetzt. Danke, Sandy –

Verwandte Themen