彰化一整天的論壇

 找回密碼
 立即註冊
查看: 174|回復: 0

【Google表單教學】如何使用核取方塊格來設計多數量購買...

[複製鏈接]
發表於 2020-6-19 14:45:43 | 顯示全部樓層 |閱讀模式
本帖最後由 imingho 於 2020-6-19 19:01 編輯

【Google表單教學】如何使用核取方塊格來設計多數量購買表單
之前是使用單選方格來製作解決同種類商品購買的問題,缺點是數量的選單會變太長,這次想說用核取方塊格來做多選,使用二進位表示方式,就可以輕鬆組合出想要的數量,但是數量會變成多選,要寫一支自動把多選的數量加總來解決。

表單分享:https://docs.google.com/forms/d/ ... x0/edit?usp=sharing

範例連結:https://forms.gle/utybuRhuAVXNsPzz6
程式碼:http://discuz.bestdaylong.com/thread-38914-1-1.html

欄位價格自動轉換: http://bestdaylong.com/tools.htm
  1. function bestdaylong_google_form(data) {
  2.   //程式碼:http://discuz.bestdaylong.com/thread-38914-1-1.html
  3.   var subject = "彰化一整天訂購物網 表單自動通知", // 信件標題
  4.       emailTitle = "電子郵件地址", // 表單中收件者 email 這個項目的標題
  5.       namedValues = data.namedValues,
  6.       values=data.values,      
  7.       notifyEmail = namedValues[emailTitle] ? namedValues[emailTitle][0]:"" ,
  8.       html = "";
  9.   
  10.   //設定產品價格
  11.   var price={"螢光筆(毎支NT30元) [0.5黃]":30,"螢光筆(毎支NT30元) [0.5綠]":30,"螢光筆(毎支NT30元) [0.5紅]":30,"原子筆(毎支NT10元) [0.5藍]":10,"原子筆(毎支NT10元) [0.5紅]":10,"原子筆(毎支NT10元) [0.5綠]":10};

  12.   var money=0;
  13.   
  14.   var n=data.values.length;
  15.   
  16.   var fields="";
  17.   
  18.   var field=["時間戳記","電子郵件地址","螢光筆(毎支NT30元) [0.5黃]","螢光筆(毎支NT30元) [0.5綠]","螢光筆(毎支NT30元) [0.5紅]","原子筆(毎支NT10元) [0.5藍]","原子筆(毎支NT10元) [0.5紅]","原子筆(毎支NT10元) [0.5綠]"]

  19.   var i;
  20.   
  21.   var v;


  22.   
  23.   for (i = 0; i < n; i++) {
  24.     v= namedValues[field[i]] ? namedValues[field[i]][0]:"" ;
  25.     if(v!="")//有輸入的資料才顯示
  26.     {
  27.       
  28.       if(price[field[i]]!=undefined) //有價格才計算
  29.       {
  30.         money+=price[field[i]]*multi_num(v);
  31.         html+=field[i]+":"+multi_num(v)+".<br/>";
  32.       }
  33.       else
  34.         html+=field[i]+":"+v+"<br/>";
  35.      }
  36.   }
  37.   
  38.   
  39.   
  40.   html+="您總共購買"+money+"元<br/>";
  41.   
  42.             
  43.   MailApp.sendEmail({
  44.     to: notifyEmail,
  45.     subject: subject,
  46.     htmlBody: html
  47.   });
  48.   
  49. }

  50. function multi_num(p)//多選數量加總
  51. {
  52.   var s=0;
  53.   var i=0;
  54.   pp=p.split(",");
  55.   for(i=0;i<pp.length;i++)
  56.      if(!isNaN(pp[i]))
  57.         s=s+Number(pp[i]);
  58.   return s;
  59. }  
  60.   
  61. function test()
  62. {
  63.    Logger.log(multi_num("1")) ;
  64.   
  65. }

複製代碼








回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)  

GMT+8, 2020-7-12 12:38 , Processed in 0.129484 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表