google.script.run.function() mengembalikan null
P粉366946380
P粉366946380 2023-09-05 13:53:44
0
1
432

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.

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 [ID, nombor kriteria, kriteria] dan tolak tab itu menggunakan appendRow() ;

Saya fikir saya boleh menggunakan skrip google untuk menjalankan dengan .withSuccessHandler() seperti yang dinyatakan di sini, saya mencuba beberapa perkara berdasarkan bantuan @Tanaike dan video ini.

一切似乎都工作正常,除了 google.script.run.withSuccessHandler(data => {alert("preuve ajoutée")}).creeID()null

这是我的 html 文件:

     ...  

Penunjuk

Preuve


Annuler 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); }

和 JavaScript 代码:

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) }

P粉366946380
P粉366946380

membalas semua (1)
P粉930448030

Bagaimana pula dengangoogle.script.run.creeID()不返回任何值。我认为这就是您当前问题的原因。从也许我应该像这里所说的那样使用.withSuccessHandler(),但我不知道如何使用。,如下使用withSuccessHandler()skrip anda?

Dalam kes ini, ubah suai Javascriptajouter()seperti berikut.

Skrip diubah suai:

function ajouter() { const inputs = document.querySelectorAll('input[type="text"]'); google.script.run.withSuccessHandler(tab => { tab = [tab]; for (const input of inputs) { tab.push(input.value); } if (tab.join('') == '') { alert('Le formulaire est vide !'); return; } inputs.forEach(input => input.value = ''); google.script.run.ajouterLigne(tab); }).creeID(); }
  • Dalam pengubahsuaian ini, apabila butang diklik, nilaitab的值,并将tabdiambil dan nilai yang dimasukkan dilampirkan pada hamparan. 李>

Rujukan:

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!