2017-08-08 5 views
3

Ich bin völlig neu in der Google Skriptsprache. Ich habe ein Tutorial (http://www.jessespevack.com/blog/2016/2/9/turn-a-google-form-response-into-a-calendar-event) verfolgt, in dem versucht wurde, eine Abwesenheitsform-Antwort in ein Kalenderereignis zu konvertieren. Ich versuche einen Weg zu finden, eine Anzahl von Feldern zu einem einzigen Attribut zusammenzufassen, aber ich war nicht in der Lage, einen Weg zu finden, dies zu erreichen.Google Scripts: Verketten von Formularantworten

Das Tutorial umfasst diesen Abschnitt:

//a mapping of form item titles to sections of the 
    //calendar event 
    formMap : { 
    eventTitle : "", 
    startTime : "", 
    endTime: "", 
    description: "", 
    location: "", 
    email: "", 
    }, 

Nach jedem Attribut („EVENTTITLE“, „Starttime“ usw.) ist es mir einen Feldnamen aus meiner Form („Vorname“ zur Liste erfordert, „Nachname ") usw. zwischen den Zitaten. Die Verwendung von jeweils einem Feld funktioniert gut, aber ich muss zwei Felder in einige Attribute verketten (wie "Vorname" + "Nachname"), aber alle traditionellen Methoden, die ich kenne, funktionieren nicht.

Die Kombination von Fragen (dh ein einzelnes Namensfeld) ist keine Option, da es mehr Daten gibt, die ich sammeln muss.

Jede Hilfe würde sehr geschätzt werden!

Vielen Dank!

Antwort

1

Wenn ich richtig verstehe, haben Sie zusätzliche Formularelemente/Felder, die Sie in ein neues Ereignis aufnehmen möchten. Da die createEvent() jedoch begrenzte Parameter hat, möchten Sie zusätzliche Formularinformationen in einem der createEvent() parameters (z. B. Ereignis "Beschreibung") kombinieren?

// Add the extra form fields into your form map 
formMap : { 
    eventTitle : "", 
    startTime : "", 
    endTime: "", 
    firstName: "", //to be concatenated into description or other parameter 
    lastName: "", //to be concatenated into description or other parameter 
    description: "", 
    location: "", 
    email: "", 
}, 


// Add the new form items/fields to the `switch` statement 
function getFormResponse() { 
    var firstName, lastName; 
... 

    for (var i = 0, x = itemResponses.length; i<x; i++) { 

... 

    switch (thisItem) { 
    case GLOBAL.formMap.eventTitle: 
     eventObject.title = thisResponse; 
     break; 
    case GLOBAL.formMap.startTime: 
     eventObject.startTime = thisResponse; 
     break; 
    case GLOBAL.formMap.endTime: 
     eventObject.endTime = thisResponse; 
     break; 
    case GLOBAL.formMap.firstName: 
     firstName = thisResponse; 
     break; 
    case GLOBAL.formMap.lastName: 
     lastName = thisResponse; 
     break; 
    case GLOBAL.formMap.description: 
     eventObject.description = thisResponse; 
     break; 
    case GLOBAL.formMap.phone: 
     eventObject.phone = thisResponse; 
     break; 
    case GLOBAL.formMap.email: 
     eventObject.email = thisResponse; 
     break; 
    } 
    } 

    //Once form responses are assigned, concatenate multiple items to eventObject.description 
    eventObject.description += " with " + firstName + " " + lastName; 

    return eventObject; 
} 

Verwenden Sie die Addition assignment die Formularfelder in einer der createEvent() parameters verketten:

//Once form responses are assigned, concatenate multiple items to eventObject.description 
eventObject.description += " with " + firstName + " " + lastName; 
+0

Sie sind erstaunlich! Ich danke dir sehr! –