google.script.run.function()이 null을 반환합니다.
P粉366946380
2023-09-05 13:53:44
<p>Google 시트에는 사용자가 다른 시트에 정보를 추가할 수 있는 사이드바 양식이 있습니다.
사용자가 ID를 추가하면 새 ID가 생성되도록 각 행에 ID를 제공해야 합니다. </p>
<p>예:
사이드바 양식에는 표준 숫자(int)와 표준(text)이라는 두 가지 입력이 있습니다. 사용자가 이러한 입력을 추가하면 A = ID, B = 표준 번호, C = 표준의 3개 열이 있는 워크시트에 입력하고 싶습니다.
ID를 생성하기 위해 서버측에 creeID() 함수를 만들었습니다(이 함수는 시트의 마지막 ID를 확인하고 다음 ID를 생성하며 테스트할 때 잘 작동했습니다). 그리고 사용자가 행을 추가할 때("ajouter" 버튼) 이 형식의 탭을 가져오고 <code>appendRow()</code></code>를 사용하여 해당 탭을 워크시트 p> ;
<p>Google 스크립트를 사용하여 여기에 설명된 대로 <code>.withSuccessHandler()</code>로 실행할 수 있다고 생각했습니다. @Tanaike의 도움말과 이 동영상을 기반으로 몇 가지를 시도했습니다.</p>
<p>一切似乎都工作正常,除了 <code>google.script.run.withSuccessHandler(data => {alert("preuve ajoutée")}).creeID()</code> 返回 <code>null</code ></p>
<p>这是我的 html 文件:</p>
<pre class="brush:php;toolbar:false;"><!DOCTYPE html>
<html>
<머리>
<기본 타겟="_top">
<스타일>
...
</스타일>
</머리>
<본문>
<p>표시자</p>
<입력 유형="숫자" name="표시자" id="인도" 값="" 최소 = "1" 최대 = "32">
<p>프리브</p>
<입력 유형="텍스트" name="preuve" id="preuve">
<br>
<입력 유형="버튼" value="아주터" onclick="ajouter()">
<스팬 클래스="annuler" onclick="google.script.host.close()">Annuler</span>
<스크립트>
함수 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 (입력의 const 입력) {
tab.push(입력.값);
}
// Si tous les champs sont vides
if (tab.join('') == '') {
Alert('공식이 확인되었습니다!');
반품;
}
// Vider les 챔피언
inputs.forEach(input => input.value = '');
// Envoi dans la feuille
google.script.run.ajouterLigne(tab);
}
</스크립트>
</body>
</html></pre>
<p>및 JavaScript 代码:</p>
<pre class="brush:php;toolbar:false;">function ajouterLigne(tab) {
const PREUVES = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("PREUVES");
console.log(탭)
PREUVES.appendRow(탭);
}
함수 크리ID() {
const SHEET = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("PREUVES");
let lastRow = SHEET.getLastRow();
let lastIdRange = SHEET.getRange(lastRow, 1);
let lastId = lastIdRange.getValue();
새로운 ID를 보자;
if (lastId == "ID") {
신규ID = 1;
} 또 다른 {
newId = lastId + 1;
};
반환(새 ID)
}</pre></p>
대본은
google.script.run.creeID()
不返回任何值。我认为这就是您当前问题的原因。从也许我应该像这里所说的那样使用.withSuccessHandler(),但我不知道如何使用。
,如下使用withSuccessHandler()
어때요?이 경우 Javascript
ajouter()
를 다음과 같이 수정하세요.수정된 스크립트:
으아악tab
的值,并将tab
값이 검색되고 입력된 값이 스프레드시트에 추가됩니다. 李>참조: