彰化一整天的論壇

 找回密碼
 立即註冊
樓主: imingho

【Google表單教學】如何設計訂單查詢系統

[複製鏈接]
 樓主| 發表於 2020-11-3 09:11:32 | 顯示全部樓層
本帖最後由 imingho 於 2020-11-3 09:14 編輯
steven790412 發表於 2020-11-3 08:40
Dear 老師:

謝謝你提供google資料庫查詢設計教學

您好,
     您可以在var LastRow = Sheet.getLastRow();之後使用,若程式碼有修改過也一併上傳修改過的程式碼.
  1. Logger.log(LastRow );
複製代碼

看看它顯示的值是多少。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2020-11-3 13:43:27 | 顯示全部樓層
steven790412 發表於 2020-11-3 08:40
Dear 老師:

謝謝你提供google資料庫查詢設計教學

應該是程式本身的Bug,只要陣列大於305就會比對不到,所以我換成另一種判斷寫法。原本
  1. if(listAll[i].indexOf(uid) === 0)
複製代碼
把它改成
  1. if(listAll[i][1]==uid)
複製代碼
就不會有這種情況出現。
回復 支持 反對

使用道具 舉報

發表於 2020-11-3 21:50:49 | 顯示全部樓層
imingho 發表於 2020-11-3 13:43
應該是程式本身的Bug,只要陣列大於305就會比對不到,所以我換成另一種判斷寫法。原本
把它改成
就不會有 ...

謝謝老師,已經修改完成,可以查詢到了~~
回復 支持 反對

使用道具 舉報

發表於 2020-11-5 13:51:51 | 顯示全部樓層
相當好用, 非常感謝熱心教學!

請教如果想要二個條件呢? 如 須輸入ID及訂單號  二個都正確了, 再撈資料出來, 該如何呢?
這個功能也很實用, 懇請指導 試算表指令碼及bolg上的html碼 , 謝謝
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2020-11-5 14:46:37 | 顯示全部樓層
ccp 發表於 2020-11-5 13:51
相當好用, 非常感謝熱心教學!

請教如果想要二個條件呢? 如 須輸入ID及訂單號  二個都正確了, 再撈資料出來 ...

請參考.
google表單訂單查詢加匯款後3碼輸入【Google表單教學】
http://discuz.bestdaylong.com/fo ... 39041&fromuid=2
(出處: 彰化一整天的論壇)
回復 支持 反對

使用道具 舉報

發表於 2020-11-7 22:11:48 | 顯示全部樓層
抱歉再請問如何讓查詢出的table表格裡的文字以置中呈現呢?
標題欄及內容文字皆以置中呈現, 非常感謝~
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2020-11-8 08:48:47 | 顯示全部樓層
ccp 發表於 2020-11-7 22:11
抱歉再請問如何讓查詢出的table表格裡的文字以置中呈現呢?
標題欄及內容文字皆以置中呈現, 非常感謝~ ...
  1. <html>
  2. <head>
  3. <meta charset="UTF-8" />
  4. <script type="text/javascript">
  5. function showHint(str)
  6. {
  7. var xmlhttp;

  8.         if (window.XMLHttpRequest)
  9.           {// code for IE7+, Firefox, Chrome, Opera, Safari
  10.           xmlhttp=new XMLHttpRequest();
  11.           }
  12.         else
  13.           {// code for IE6, IE5
  14.           xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  15.           }
  16.         xmlhttp.onreadystatechange=function()
  17.           {
  18.                   if (xmlhttp.readyState==4 && xmlhttp.status==200)      
  19.                   {
  20.                         var result=xmlhttp.responseText;
  21.                         var obj = JSON.parse(result);//解析json字串為json物件形式
  22.                                                 
  23.                         var html = '<table border=1 width=100%>';//
  24.                         
  25.                         for (var i = 0; i < obj.length; i ++ ) {//
  26.                                 html  += '<tr>';//
  27.                                 for(j=0;j<obj[i].data.length;j++)
  28.                                 {
  29.                                   html+= '<td align="center">'+obj[i].data[j]+'</td>';
  30.                                 }
  31.                                 html  += '</tr>';            
  32.                         }
  33.                         html+="</table>";
  34.                         
  35.                         document.getElementById("order_status").innerHTML=html;
  36.                         if(obj.length==1) //只有一筆代表查不到資料
  37.                                 alert('查無資料');
  38.                   }

  39.           }
  40.     var url="https://script.google.com/macros/s/AKfycbwJOajAYKRM77CELpG5bf5koUbY-TdN24apUJfo22FLsYft9rTP/exec";
  41.         xmlhttp.open("get",url+"?uid="+encodeURIComponent(str),true);
  42.         xmlhttp.send();
  43. }
  44. </script>
  45. </head>
  46. <body>

  47. 輸入購買者身分證號:<input type="text" id="uid" />
  48. <input type="button" name="inq" value="查詢" onclick="showHint(uid.value);"></br>

  49. <span id="order_status"></span>
  50. </body>
  51. </html>
複製代碼
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2021-1-4 16:16:14 | 顯示全部樓層

查詢表格轉置的寫法。
google_form_01.jpg

範例網址:



  1. <html>
  2. <head>
  3. <meta charset="UTF-8" />
  4. <script type="text/javascript">
  5. function showHint(str)
  6. {
  7. var xmlhttp;

  8.         if (window.XMLHttpRequest)
  9.           {// code for IE7+, Firefox, Chrome, Opera, Safari
  10.           xmlhttp=new XMLHttpRequest();
  11.           }
  12.         else
  13.           {// code for IE6, IE5
  14.           xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  15.           }
  16.         xmlhttp.onreadystatechange=function()
  17.           {
  18.                   if (xmlhttp.readyState==4 && xmlhttp.status==200)      
  19.                   {
  20.                         var result=xmlhttp.responseText;
  21.                         var obj = JSON.parse(result);//解析json字串為json物件形式
  22.                                                 
  23.                         var html = '<table border=1 width=100%>';//
  24.                         
  25.                         for (var i = 0; i < obj[0].data.length; i ++ ) {//
  26.                                 html  += '<tr>';//
  27.                                                                 html+= '<td>'+obj[0].data[i]+'</td>';
  28.                                 for(j=1;j<obj.length;j++)
  29.                                 {
  30.                                   html+= '<td>'+obj[j].data[i]+'</td>';
  31.                                 }
  32.                                 html  += '</tr>';            
  33.                         }
  34.                         html+="</table>";
  35.                         
  36.                         document.getElementById("order_status").innerHTML=html;
  37.                         if(obj.length==1) //只有一筆代表查不到資料
  38.                                 alert('查無資料');
  39.                   }

  40.           }
  41.     var url="https://script.google.com/macros/s/AKfycbwJOajAYKRM77CELpG5bf5koUbY-TdN24apUJfo22FLsYft9rTP/exec";
  42.         xmlhttp.open("get",url+"?uid="+encodeURIComponent(str),true);
  43.         xmlhttp.send();
  44. }
  45. </script>
  46. </head>
  47. <body>

  48. 輸入購買者身分證號:<input type="text" id="uid" />
  49. <input type="button" name="inq" value="查詢" onclick="showHint(uid.value);"></br>

  50. <span id="order_status"></span>
  51. </body>
  52. </html>
複製代碼




回復 支持 反對

使用道具 舉報

 樓主| 發表於 2021-1-4 21:31:16 | 顯示全部樓層
imingho 發表於 2021-1-4 16:16
查詢表格轉置的寫法。
範例網址:
https://sites.google.com/view/inputatm20201010/%E8%A8%82%E5%96%AE%E6 ...

修正日期顯示方式.測試網址: http://bestdaylong.com/html/inq03.htm
google_inq_date.jpg


  1. <html>
  2. <head>
  3. <meta charset="UTF-8" />
  4. <script type="text/javascript">
  5. Date.prototype.format = function(fmt)
  6. {
  7.   var o = {
  8.     "M+" : this.getMonth()+1, //月份
  9.     "d+" : this.getDate(), //日
  10.     "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小時
  11.     "H+" : this.getHours(), //小時
  12.     "m+" : this.getMinutes(), //分
  13.     "s+" : this.getSeconds(), //秒
  14.     "q+" : Math.floor((this.getMonth()+3)/3), //季度
  15.     "S" : this.getMilliseconds() //毫秒
  16.   };
  17.   if(/(y+)/.test(fmt))
  18.     fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  19.   for(var k in o)
  20.     if(new RegExp("("+ k +")").test(fmt))
  21.   fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
  22.   return fmt;
  23. }

  24. var dateReviver = function (key, value) {
  25.     var a;
  26.     if (typeof value === 'string') {
  27.         a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
  28.         if (a) {
  29.             return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6])).format("yyyy-MM-dd HH:mm:ss");
  30.         }
  31.     }
  32.     return value;
  33. };
  34. function showHint(str)
  35. {
  36. var xmlhttp;

  37.         if (window.XMLHttpRequest)
  38.           {// code for IE7+, Firefox, Chrome, Opera, Safari
  39.           xmlhttp=new XMLHttpRequest();
  40.           }
  41.         else
  42.           {// code for IE6, IE5
  43.           xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  44.           }
  45.         xmlhttp.onreadystatechange=function()
  46.           {
  47.                   if (xmlhttp.readyState==4 && xmlhttp.status==200)      
  48.                   {
  49.                         var result=xmlhttp.responseText;
  50.                         var obj = JSON.parse(result,dateReviver);//解析json字串為json物件形式
  51.                                                 
  52.                         var html = '<table border=1 width=100%>';//
  53.                         
  54.                         for (var i = 0; i < obj.length; i ++ ) {//
  55.                                 html  += '<tr>';//
  56.                                 for(j=0;j<obj[i].data.length;j++)
  57.                                 {
  58.                                   html+= '<td>'+obj[i].data[j]+'</td>';
  59.                                 }
  60.                                 html  += '</tr>';            
  61.                         }
  62.                         html+="</table>";
  63.                         
  64.                         document.getElementById("order_status").innerHTML=html;
  65.                         if(obj.length==1) //只有一筆代表查不到資料
  66.                                 alert('查無資料');
  67.                   }

  68.           }
  69.     var url="https://script.google.com/macros/s/AKfycbwJOajAYKRM77CELpG5bf5koUbY-TdN24apUJfo22FLsYft9rTP/exec";
  70.         xmlhttp.open("get",url+"?uid="+encodeURIComponent(str),true);
  71.         xmlhttp.send();
  72. }
  73. </script>
  74. </head>
  75. <body>
  76. 請輸入A01或A02做測試<br/>
  77. 輸入購買者身分證號:<input type="text" id="uid" />
  78. <input type="button" name="inq" value="查詢" onclick="showHint(uid.value);"></br>

  79. <span id="order_status"></span>
  80. </body>
  81. </html>
複製代碼


回復 支持 1 反對 0

使用道具 舉報

發表於 2021-1-27 23:02:50 | 顯示全部樓層
本帖最後由 shiehe 於 2021-1-27 23:04 編輯

首先謝謝老師寫這篇,非常實用!
一直看影片,老師您有說到這一段
可以用and方式來搜尋
// 找尋資料是否有存在
  for(var i = 1;i < listAll.length; i++){
    if(listAll[1]==uid){
      data.push({data: listAll})

我現在能由輸入電話回傳,
但怎麼用and的方式,輸入身份證,或收件編號,或姓名



蠻有興趣的,希望老師幫我解答,感謝!
回復 支持 反對

使用道具 舉報

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

本版積分規則

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

GMT+8, 2021-9-21 02:09 , Processed in 0.131563 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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