彰化一整天的論壇

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

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

[複製鏈接]
發表於 2021-6-26 09:33:50 | 顯示全部樓層 |閱讀模式
本帖最後由 imingho 於 2021-9-19 11:20 編輯

有些網友有部分關鍵字查詢的需求,寫法跟之前的有些差異,剛好最近google app script改新版的編輯器,就用這個例子再重新教學一次。

協助平台:
https://sites.google.com/

程式碼及討論
【Google表單教學】如何設計訂單查詢系統(部分查詢)
http://discuz.bestdaylong.com/thread-39312-1-1.html

前端
  1. <html>
  2. <head>
  3. <meta charset="UTF-8" />
  4. <script type="text/javascript">
  5. function bestdaylong_show(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>'+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.                   //請換成您自己的url
  41.     var url="https://xxxxx";
  42.         var get_url=url+"?uid="+encodeURIComponent(str);
  43.             //偵錯用
  44.                 console.log(get_url);
  45.         xmlhttp.open("get",get_url,true);
  46.                
  47.         xmlhttp.send();
  48. }
  49. </script>
  50. </head>
  51. <body>

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

  54. <span id="order_status"></span>
  55. </body>
  56. </html>
複製代碼


後端
  1. function doGet(e) {
  2.   //https://youtu.be/MQV3AlAOtCU 影音說明
  3.   var params = e.parameter;
  4.   var uid = params.uid;


  5.   var Sheet = SpreadsheetApp.getActiveSheet();

  6.   var LastRow = Sheet.getLastRow();
  7.   var LastColumn = Sheet.getLastColumn();
  8.   var data = [];

  9.   // 取得全部資料
  10.   var listAll = Sheet.getSheetValues(1, 1, LastRow, LastColumn);
  11.   
  12.   //存標題
  13.   data.push({data: listAll[0]})

  14.   
  15.   // 找尋資料是否有存在
  16.   for(var i = 1;i < listAll.length; i++){
  17.     if(String(listAll[i][3]).indexOf(uid)!=-1 && uid!=""){  //0代表第1欄.陣列從0開始算,所以您要查詢的欄位位置減1
  18.         data.push({data: listAll[i]})
  19.     }
  20.   }
  21.   
  22.   //顯示資料
  23.   Logger.log(data);
  24.   
  25.   // 回傳json資料
  26.   return ContentService.createTextOutput(JSON.stringify(data))
  27.     .setMimeType(ContentService.MimeType.JSON);
  28. }
複製代碼
回復

使用道具 舉報

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

本版積分規則

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

GMT+8, 2021-9-21 16:45 , Processed in 0.107022 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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