|
發表於 2021-1-16 00:41:34
|
顯示全部樓層
老師好,感謝老師的教學,我試著更改了程式碼,發現叫得出標題欄位,但是查詢不到資料,想請老師幫忙看看
完成品評台:h ttps://lst2021.blogspot.com/2021/01/var-datereviver-function-key-value-var.html
試算表:h ttps://docs.google.com/spreadsheets/d/1WE-Emdwx4nMxISWTs6JVulVvwhMmNbSBeutTnUI3IM0/edit?usp=sharing
試算表程式碼:
- function doGet(e) {
- //h t t p s://youtu.be/sukRGQDj1G4 影音說明
- var params = e.parameter;
- var Date = params.Date;//日期
- var Name = params.Name;//駕駛者姓名
- var location=params.location;//目的地
- var Getouttime=params.Getouttime//出車時間
- var Mileage=params.Mileage//出車里程
- var Returntriptime=params.Returntriptime//返園時間
- var Returnmileage=params.Returnmileage//返園里程
- var Vehicletype=params.Vehicletype//駕駛車輛
- var status=params.status//車輛狀態
- var confirm=params.confirm//業管確認
- var Sheet = SpreadsheetApp.getActiveSheet();
- var LastRow = Sheet.getLastRow();
- var LastColumn = Sheet.getLastColumn();
- var data = [];
- // 取得全部資料
- var listAll = Sheet.getSheetValues(1, 1, LastRow, LastColumn);
-
- //存標題
- data.push({data: listAll[0]})
-
- // 找尋資料是否有存在
- for(var i = 1;i < listAll.length; i++){
- if(listAll[i].indexOf(Date) ==1 && listAll[i].indexOf(Name) ==2 && listAll[i].indexOf(location) ==3 && listAll[i].indexOf(Getouttime) ==4
- && listAll[i].indexOf(Mileage) ==5 && listAll[i].indexOf(Returntriptime) ==6 && listAll[i].indexOf(Returnmileage) ==7
- && listAll[i].indexOf(Vehicletype) ==8 && listAll[i].indexOf(status) ==9){ //第2欄,由0開始
- if(confirm!="")
- {
- Sheet.getRange("L"+(i+1)).setValue(confirm);//寫回業管確認狀態
- Sheet.getRange("M"+(i+1)).setValue("已審核");//寫回狀態
- Sheet.getRange("N"+(i+1)).setValue(new Date());//寫回狀態
- listAll[i]=Sheet.getSheetValues(i+1,1,1,LastColumn)[0];//重新讀取
- }
-
- }
- }
-
- //顯示資料
- Logger.log(data);
-
- // 回傳json資料
- return ContentService.createTextOutput(JSON.stringify(data))
- .setMimeType(ContentService.MimeType.JSON);
-
- Sheet.getSheet
- }
複製代碼
前端程式碼:
- <html>
- <head>
- <meta charset="UTF-8"></meta>
- <script type="text/javascript">
- var dateReviver = function (key, value) {
- var a;
- if (typeof value === 'string') {
- a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
- if (a) {
- return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6]));
- }
- }
- return value;
- };
- function bestdaylong_inq(Date,Name,location,Getouttime,Mileage,Returntriptime,Returnmileage,Vehicletype,status,confirm)
- {
- var xmlhttp;
- if (window.XMLHttpRequest)
- {// code for IE7+, Firefox, Chrome, Opera, Safari
- xmlhttp=new XMLHttpRequest();
- }
- else
- {// code for IE6, IE5
- xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
- }
- xmlhttp.onreadystatechange=function()
- {
- if (xmlhttp.readyState==4 && xmlhttp.status==200)
- {
- var result=xmlhttp.responseText;
- var obj = JSON.parse(result,dateReviver);//解析json字串為json物件形式
-
- var html = '<table border=1 width=100%>';//
-
- for (var i = 0; i < obj.length; i ++ ) {//
- html += '<tr>';//
- for(j=0;j<obj[i].data.length;j++)
- {
- html+= '<td>'+obj[i].data[j]+'</td>';
- }
- html += '</tr>';
- }
- html+="</table>";
-
- document.getElementById("order_status").innerHTML=html;
- if(obj.length==1) //只有一筆代表查不到資料
- alert('查無資料');
- }
- }
- var url="h t t p s ://script.google.com/macros/s/AKfycby7d0a0T8wKAomr7Cx5Ye0uRrbuhRF6FfAAgiiVGN8Kn_dvRY8/exec";
- xmlhttp.open("get",url+"Date="+Date+"&Name="+Name+"&location="+location+"&Getouttime="+Getouttime
- +"&Mileage="+Mileage+"&Returntriptime="+Returntriptime+"&Returnmileage="+Returnmileage
- +"&Vehicletype="+Vehicletype+"&status="+status+"&confirm="+confirm,true);
- xmlhttp.send();
-
- }
- </script>
- </head>
- <body>
- 請輸入查詢日期:<input id="Date" type="text" /><br />
- 請輸入查詢駕駛姓名:<input id="Name" type="text" /><br />
- 請輸入查詢目的地:<input id="location" type="text" /><br />
- 請輸入查詢出車時間:<input id="Getouttime" type="text" /><br />
- 請輸入查詢出車里程:<input id="Mileage" type="text" /><br />
- 請輸入查詢返園時間:<input id="Returntriptime" type="text" /><br />
- 請輸入查詢返園里程:<input id="Returnmileage" type="text" /><br />
- 請輸入查詢使用車輛:<input id="Vehicletype" type="text" /><br />
- 請輸入查詢車輛狀況:<input id="status" type="text" /><br />
- 業管回報狀況說明:<input id="confirm" type="text" /><br />
- <input name="inq" onclick="bestdaylong_inq(Date,Name,location,Getouttime,Mileage,Returntriptime,Returnmileage,Vehicletype,status,confirm);" type="button" value="送出" />
- <span id="order_status"></span>
- </body>
- </html>
複製代碼
|
|