>  Q&A  >  본문

google.script.run.function()이 null을 반환합니다.

<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>
P粉366946380P粉366946380410일 전513

모든 응답(1)나는 대답할 것이다

  • P粉930448030

    P粉9304480302023-09-06 09:30:00

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

    이 경우 Javascriptajouter()를 다음과 같이 수정하세요.

    수정된 스크립트:

    으아악
    • 이 수정에서는 버튼을 클릭하면 tab 的值,并将 tab 값이 검색되고 입력된 값이 스프레드시트에 추가됩니다.

    참조:

    회신하다
    0
  • 취소회신하다