我正在嘗試構建一個web應用程序,它可以從Google Spreadsheet中的窗體記錄數據。要做到這一點,我有使用JavaScript(JSON或AJAX請求將工作以及),但我不能使用Google Apps腳本,因爲我需要用戶繼續使用我的網頁和GAS不允許它。如何使用JavaScript將數據從HTML表單發送到Google Spreadsheet?
我不太懂JSON請求,但我試圖做一個追加:沒有意外,它沒有工作,也沒有意外,我不知道爲什麼。
我不確定我用來發出請求和代碼的URL是否正確,但不知道如何繼續,很難知道我的代碼中出了什麼問題。
這就是我的方式:
<form name="reqForm" id="reqForm" method="post" action="" accept-charset="UTF-8" enctype="application/json">
<input type="hidden" name="area" id="area" readonly/>
<input type="hidden" name="idN" id="idN" readonly/>
<input type="hidden" name="dataReq" id="dataReq" readonly />
<label for="nome">* Nome:</label>
<input type="text" id="nome" name="nome" placeholder="Il tuo nome" />
<label for="cognome">* Cognome:</label>
<input type="text" id="cognome" name="cognome" placeholder="Il tuo cognome" />
<label for="mat">* Matricola:</label>
<input type="text" id="mat" name="mat" placeholder="La tua matricola" />
<label for="mail">* E-mail:</label>
<input type="text" id="mail" name="mail" placeholder="La tua e-mail" />
<label for="testo">* Richiesta:</label>
<textarea id="testo" name="testo" placeholder="Che cosa vuoi chiedere?"></textarea>
<button type="button" value="Invia" onClick="check()">Invia</button>
</form>`
隱藏的值設置爲提供一個ID號和用戶的路徑。
的check()
功能將檢查表格,(應該)做的請求,並正如我之前所說的GSpreadSheet
function check() {
document.getElementById('errorForm').innerHTML = "";
var a = document.getElementById('area').value;
var idN = document.getElementById('idN').value;
var n = document.getElementById('nome').value;
var c = document.getElementById('cognome').value;
var m = document.getElementById('mat').value;
var em= document.getElementById('mail').value;
var t = document.getElementById('testo').value;
// check the possible errors and set error messages.
// if msg is not empty, writes the messages in my page.
} else if(msg == "") {
var xhr = new XMLHttpRequest();
var key = mySheetKey, sName = mySheetName, url = "https://sheets.googleapis.com/v4/spreadsheets/"+key+"/values/"+ sName + ":append?valueInputOption=USER_ENTERED";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-type", "application/json");
xhr.onreadystatechange = function() {
if(xhr.readyState === 4 && xhr.status === 200) {
var json = JSON.parse(xhr.responseText);
}
// Here I should create the object made of my variables I read
// from my form at the beginning of the code and send the request that
// should append my datas to my Spreadsheet
xhr.send();
}
}
寫,我的代碼看起來類似於若干個我在網上找到,但它沒有工作,我不知道如何理解錯誤。
您能不能請給我一些提示或建議或一些例子,可以幫助我將數據附加到Google電子表格?
爲什麼在EARTH上使用XMLHttpRequest AND $ .ajax - 這太愚蠢了。還有其他地方呢? – mplungjan
遵循用於此目的的apis https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append –
@mplungjan我真的很抱歉...這對我來說是新的,我不熟悉AJAX或XMLHttpRequest ...請給我一些提示或任何可以幫助我的東西嗎? – Simone