2016-08-26 4 views
0

В скрипте Google Apps, использующем HTML-службу, как создать пользовательский интерфейс веб-страницы для сбора базовой информации пользователя и загрузки данных в базу данных MySQL. Я делаю это в Google листе, используя приведенный ниже кодgoogle apps script html service web-страница

function getHtml() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(), 
     html = HtmlService.createHtmlOutputFromFile('index'); 
    ss.show(html); 
} 


function getData(form){ 
    var firstName = form.firstName, 
     lastName = form.lastName, 
     dob = form.dob, 
     email = form.email, 
     phone = form.phone, 
     sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    sheet.appendRow([firstName, lastName, dob, email, phone]); 
} 

//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 Record" /> <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> 
+0

Есть ли ошибка? Или проблема? –

+0

У меня проблема. Я не знаю, как добавлять записи в таблицу mysql. – user25407

ответ

1

Перед тем, как начать, прочитайте this document хорошо. У вас есть какой-то шаг, чтобы следовать, вам нужно белым списком некоторых диапазонов IP-адресов.

// Replace the variables in this block with real values. 
var address = 'database_IP_address'; 
var user = 'user_name'; 
var userPwd = 'user_password'; 
var db = 'database_name'; 
var dbUrl = 'jdbc:mysql://' + address + '/' + db; 

Теперь вам нужно позвонить ниже writeRecord(...) функции от getData(form) функции,

function getData(form){ 
    var firstName = form.firstName, 
     lastName = form.lastName, 
     dob = form.dob, 
     email = form.email, 
     phone = form.phone, 
     sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    sheet.appendRow([firstName, lastName, dob, email, phone]);// this will write data line on your spreadsheet 
    writeRecord(firstName, lastName, dob, email, phone)// this is where you call the database insert function 
} 

Это функция вставки DB,

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

    var stmt = conn.prepareStatement('INSERT INTO myTable' 
     + '(f-name,l_name,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(); 
} 
+0

Как бы переписать функцию getData()? Функция GetData (форма) { вар Firstname = form.firstName, LastName = form.lastName, DOB = form.dob, электронная почта = form.email, телефон = form.phone, loadDataFromFormToTable = insertDataToTable (FirstName, LastName , dob, электронная почта, телефон); // Как загрузить запись формы в таблицу mysql? \t} – user25407

+0

Я отредактировал свой ответ, изменил функцию 'getData (form)' для вызова функции вставки базы данных – iJay

Смежные вопросы