google.script.run.function() mengembalikan null
<p>Pada Helaian Google, saya mempunyai borang bar sisi yang membenarkan pengguna menambah maklumat dalam helaian lain.
Saya perlu menyediakan ID untuk setiap baris supaya apabila pengguna menambah ID, ID baharu dijana. </p>
<p>Contoh:
Borang sidebar mempunyai dua input: nombor standard (int) dan standard (teks). Apabila pengguna menambah input ini, saya ingin memasukkannya ke dalam lembaran kerja dengan 3 lajur: A = ID, B = Nombor Standard dan C = Standard.
Untuk menjana ID, saya mencipta fungsi creeID() pada bahagian pelayan (fungsi ini menyemak ID terakhir dalam helaian dan menjana ID seterusnya, berfungsi dengan baik semasa menguji) dan apabila pengguna menambah baris (butang "ajouter") untuk mendapatkan tab dengan format ini <kod>[ID, nombor kriteria, kriteria]</kod> dan tolak tab itu menggunakan <kod>appendRow()</kod></kod> ;
<p>Saya fikir saya boleh menggunakan skrip google untuk menjalankan dengan <code>.withSuccessHandler()</code> seperti yang dinyatakan di sini, saya mencuba beberapa perkara berdasarkan bantuan @Tanaike dan video ini.</p>
<p>一切似乎都工作正常,除了 <code>google.script.run.withSuccessHandler(data => {alert("preuve ajoutée")}).creeID()</code< 返回 <kod>null</kod ></p>
<p>这是我的 html 文件:</p>
<pre class="brush:php;toolbar:false;"><!DOCTYPE html>
<html>
<kepala>
<sasaran asas="_atas">
<gaya>
...
</style>
</head>
<badan>
<p>Penunjuk</p>
<jenis input="nombor" name="indicateur" id="indic" nilai="" min = "1" maks = "32">
<p>Preuve</p>
<jenis input="teks" name="preuve" id="preuve">
<br>
<jenis input="butang" value="Ajouter" onclick="ajouter()">
<span class="annuler" onclick="google.script.host.close()">Annuler</span>
<skrip>
function ajouter() {
input const = document.querySelectorAll('#indic, #preuve');
let tab = [google.script.run.withSuccessHandler(data => {alert("preuve ajoutée")}).creeID()];
// Récupération des valeurs
untuk (input const input) {
tab.push(input.value);
}
// Si tous les champs sont vides
jika (tab.join('') == '') {
alert('Le formulaire est vide !');
kembali;
}
// Vider les champs
inputs.forEach(input => input.value = '');
// Envoi dans la feuille
google.script.run.ajouterLigne(tab);
}
</skrip>
</badan>
</html></pre>
<p>和 JavaScript 代码:</p>
<pre class="brush:php;toolbar:false;">function ajouterLigne(tab) {
const PREUVES = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("PREUVES");
console.log(tab)
PREUVES.appendRow(tab);
}
fungsi creeID() {
const SHEET = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("PREUVES");
biarkan lastRow = SHEET.getLastRow();
biarkan lastIdRange = SHEET.getRange(lastRow, 1);
biarkan lastId = lastIdRange.getValue();
biarkan newId;
if (lastId == "ID") {
newId = 1;
} lain {
newId = lastId + 1;
};
kembali(newId)
}</pre></p>