iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
Modern Web

Google Apps Script 整合運用系列 第 20

表單取值

  • 分享至 

  • xImage
  •  

google.script.run

  1. 由於我們使用 google.script.run 進行前後端數據傳輸和互動,所以事實上並沒有將表單送出,而是透過 google.script.run 調用後台函式,因此需要自行取值

insertData()

  1. 驗證成功後會執行函式 insertData()
  2. 當初表單是根據結構產生,需要取值的範圍,一樣根據結構即可

  /*===============================
  將資料送到gas寫入工作表
  ===============================*/
  function insertData(){
    let formData = {};
    let check,v;
    //若表單取值
    <? for(let i in stru){ ?>
      <? if(stru[i].form_kind == "複選"){ ?>         
      check = $("input[name='<?= stru[i].form_name ?>']");
      v = [];
        for(var i=0; i < check.length; i++){
          if (check[i].checked) {
            v.push(check[i].value);
          }
        }
        formData[<?= stru[i].form_name ?>] = v.join("|"); 
      <? }else if(stru[i].form_kind == "單選"){ ?>        
        check = $("input[name='<?= stru[i].form_name ?>']");
        v = '';
        for(var i=0; i < check.length; i++){
          if (check[i].checked) {
            v=check[i].value;
            break;
          }
        }
        formData[<?= stru[i].form_name ?>] =  v;      
      <? }else{ ?>
        formData[<?= stru[i].form_name ?>] = document.getElementById(<?= stru[i].form_name ?>).value;
      <? } ?>
    <? } ?>

    // validate
    // formData['op_userId'] = '<?= global.userId?>';
    // formData['op_replyToken'] = '<?= global.replyToken?>';
    
    //樣板執行 函式 apps script function 
    //調用GAS => 函式 insert_關鍵字(formData)
    insert_op='<?= global.insert_op?>';
    google.script.run.withSuccessHandler(onSuccess)[insert_op](formData);

    setIdAttribute('main-content','d-none');//關閉主畫面
    setIdAttribute('show','my-5');            //開啟等待畫面
  }

上一篇
回傳訊息
下一篇
編輯客戶資料
系列文
Google Apps Script 整合運用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言