2016-08-29 3 views
0

ich habe diese html-datei für das google form und möchte form response in einer mysql-datenbank speichern. Jetzt speichere ich meine Formularantwort auf ein Google-Blatt und kopiere diese Daten in eine MySQL-Tabelle. Jetzt möchte ich meine Ergebnisse direkt in der Datenbank gespeichert speichern.google forms response auf eine mysql-datenbank speichern

//index.html 

<!DOCTYPE html> 
<html> 
    <b>Add Record</b><br /> 

    <form> 
    First name: <input id="firstname" name="firstName" type="text" /> <br /> 

    Last name: <input id="lastname" name="lastName" type="text" /> <br /> 

    DOB: <input id="dob" name="dob" type="date" /> <br /> 

    Email: <input id="email" name="email type="text" /> <br /> 

    Phone: <input id="phone" name="phone" type="text" /> <br /> 

    <input onclick="formSubmit()" type="button" value="Add Row" /> <br /> 

    <input onclick="google.script.host.close()" type="button" value="Exit" /> 
    </form> 
    <script type="text/javascript"> 
     function formSubmit() { 
      google.script.run.getValuesFromForm(document.forms[0]); 
     } 
    </script> 
</html> 


    function getData(){ 
    var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz'); 
var formResponses = form.getResponses(); 
for (var i = 0; i < formResponses.length; i++) { 
    var formResponse = formResponses[i]; 
    var itemResponses = formResponse.getItemResponses(); 
    for (var j = 0; j < itemResponses.length; j++) { 
    var itemResponse = itemResponses[j]; 
     var firstName = itemResponse.getResponse(), 
     lastName = itemResponse.getResponse(), 
     dob = itemResponse.getResponse(), 
     email = itemResponse.getResponse(), 
     phone = itemResponse.getResponse(), 
     insertFormData = copyDataToTable(firstName, lastName, dob, email, phone); 
} 


function copyDataToTable(firstName, lastName, dob, email, phone) 
{ 
    var conn = Jdbc.getConnection(dbUrl, user, userPwd); 

    var stmt = conn.prepareStatement('INSERT INTO myTable (firstName, lastName, dob, email, phone) values (?, ?, ?, ?, ?)'); 
    stmt.setString(1, firstName); 
    stmt.setString(2, lastName); 
    stmt.setString(3, dob); 
    stmt.setString(4, email); 
    stmt.setString(5, phone); 
    stmt.execute(); 
} 

Antwort

2

Dies ist möglich, indem Google Apps Script ‚s Forms Service und JDBC.

Formular Service

Dieser Service ermöglicht es Skripte zu erstellen, darauf zuzugreifen und modifizieren Google Forms.

JDBC

Apps Script an externe Datenbanken über das JDBC service verbinden können, ein Wrapper um den Standard J ava Database Connectivity technology. In Google Apps Script unterstützt der JDBC-Service Google Cloud SQL, MySQL-, Microsoft SQL Server- und Oracle-Datenbanken.

Mit Formular-Service können Sie die getItemResponses()-Methode verwenden, um alle Artikelantworten zu erhalten.

Ruft alle in dieser Formularantwort enthaltenen Elementantworten in der Reihenfolge ab, in der die Elemente im Formular angezeigt werden. Wenn die Formularantwort keine Antwort für ein angegebenes TextItem, DateItem, TimeItem oder ParagraphTextItem enthält, enthält die zurückgegebene ItemResponse für dieses Element eine leere Zeichenfolge als Antwort. Wenn die Formularantwort eine Antwort für einen anderen Elementtyp auslässt, Diese Methode wird dieses Element aus dem zurückgegebenen Array ausschließen.

Dann verwenden Sie diese Antworten als Daten in der Datenbank eingegeben werden.

Beispielcode

// Write one row of data to a table. 
function writeOneRecord() { 
var conn = Jdbc.getConnection(dbUrl, user, userPwd); 

var stmt = conn.prepareStatement('INSERT INTO entries ' 
+ '(guestName, content) values (?, ?)'); 
stmt.setString(1, 'First Guest'); 
stmt.setString(2, 'Hello, world'); 
stmt.execute(); 
} 

Hoffe, es hilft!

+0

Mein ursprünglicher Beitrag wurde aktualisiert, aber es sieht so aus, als würde ich die Antwort nicht direkt auf die Variable setzen. – user25407

Verwandte Themen