google.script.run.function() gibt null zurück
<p>Auf einer Google-Tabelle habe ich ein Seitenleistenformular, mit dem der Nutzer Informationen in einer anderen Tabelle hinzufügen kann.
Ich muss für jede Zeile eine ID angeben, damit beim Hinzufügen einer ID durch den Benutzer eine neue ID generiert wird. </p>
<p>Beispiel:
Das Seitenleistenformular verfügt über zwei Eingaben: Standardzahl (int) und Standard (text). Wenn der Benutzer diese Eingaben hinzufügt, möchte ich sie in ein Arbeitsblatt mit drei Spalten einfügen: A = ID, B = Standardnummer und C = Standard.
Um die IDs zu generieren, habe ich auf der Serverseite eine creeID()-Funktion erstellt (diese Funktion prüft die letzte ID im Blatt und generiert die nächste ID, hat beim Testen gut funktioniert) und wenn der Benutzer eine Zeile hinzufügt (Schaltfläche „ajouter“) um eine Registerkarte mit diesem Format zu erhalten: <code>[ID, Kriteriennummer, Kriterien]</code> und verschieben Sie diese Registerkarte mit <code>appendRow()</code></code> ;
<p>Ich dachte, ich könnte ein Google-Skript verwenden, um mit <code>.withSuccessHandler()</code> zu arbeiten. Wie es hier steht, habe ich ein paar Dinge ausprobiert, basierend auf der Hilfe von @Tanaike und diesem Video.</p>
<p>一切似乎都工作正常,除了 <code>google.script.run.withSuccessHandler(data => {alert("preuve ajoutée")}).creeID()</code> 返回 <code>null</code ></p>
<p>这是我的 html-Datei:</p>
<pre class="brush:php;toolbar:false;"><!DOCTYPE html>
<html>
<Kopf>
<base target="_top">
<Stil>
...
</style>
</head>
<Körper>
<p>Anzeiger</p>
<Eingabetyp="Nummer" name="Anzeiger" id="indic" value="" min = "1" max = "32">
<p>Preuve</p>
<Eingabetyp="Text" name="preuve" id="preuve">
<br>
<Eingabetyp="Schaltfläche" value="Ajouter" onclick="ajouter()">
<span class="annuler" onclick="google.script.host.close()">Annuler</span>
<script>
Funktion ajouter() {
const inputs = document.querySelectorAll('#indic, #preuve');
let tab = [google.script.run.withSuccessHandler(data => {alert("preuve ajoutée")}).creeID()];
// Récupération des valeurs
for (konstante Eingabe der Eingaben) {
tab.push(input.value);
}
// Si tous les champs sont vides
if (tab.join('') == '') {
Alert('Die Formel ist da!');
zurückkehren;
}
// Vider les champs
inputs.forEach(input => input.value = '');
// Envoi dans la feuille
google.script.run.ajouterLigne(tab);
}
</script>
</body>
</html></pre>
<p>und JavaScript-Code:</p>
<pre class="brush:php;toolbar:false;">function ajouterLigne(tab) {
const PREUVES = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("PREUVES");
console.log(tab)
PREUVES.appendRow(tab);
}
Funktion creeID() {
const SHEET = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("PREUVES");
let lastRow = SHEET.getLastRow();
let lastIdRange = SHEET.getRange(lastRow, 1);
let lastId = lastIdRange.getValue();
let newId;
if (lastId == "ID") {
neueId = 1;
} anders {
newId = lastId + 1;
};
return(newId)
}</pre></p>