Googleスプレッドシートのフォームからデータを記録するwebappを構築しようとしています。これを行うには、にのJavaScriptを使用する必要があります(JSONまたはAJAXリクエストも同様に動作します)。はGoogle Apps Scriptを使用できません。JavaScriptを使用してHTMLフォームからGoogleスプレッドシートにデータを送信するにはどうすればよいですか?
私はJSONリクエストにあまり精通していませんが、私は1つ追加しようとしました。驚きではなく、うまく動作せず、驚くこともありません。
私は私が要求してコードを作るために使用される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スプレッドシートにデータを追加してもよろしいですか?
なぜあなたはXMLHttpRequestと$ .ajaxを使っていますか?それはちょっとばかりです。 elseにifがどこにありますか? – mplungjan
この目的に使用されているapiに従ってくださいhttps://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append –
@mplungjan本当に申し訳ありません...これは私には新しく、私はAJAXやXMLHttpRequestに精通していません...私にいくつかのヒントを教えてください。お返事のための – Simone