皆様、ご閲覧ありがとうございます。
以前も同様のタイトルにて質問させていただいた内容と同じで恐縮なのですが、同じエラーが発生してしまいました。
しかし、今回は前回の教えの通り修正したものの、正常に動作がせず困っております。
今回もHTMLの方でエラーが発生しております。
エラー内容としては、ページ上部にある「全件表示」、又は検索ウィンドウ横にある「送信」をクリックすると全く別のURLに飛んでしまうということです。
この問題を解決して、それぞれのherfに設定しているURLに飛ぶことが出来れば理想通りです。
ただ、今回の件に関しましては、スプレッドシートに社内情報が詰まっており、そちらを公開することが出来ません。
iDのタイプミスが無いことは何度も確認しておりますので、そちらをご理解頂けると幸いです。
現状については、HTML及びGASのコードとスプレッドシートのURL及び画像を以下に記載しております。
大変面倒なお願いであることは重々承知しております。
お手数をおかけしますが、どうぞよろしくお願い致します。
【悩み】
ページ上の該当箇所をクリックした際に、設定しているURLへページが飛ばない
1.「全件表示」及び「検索ウィンドウ」横の「送信」をクリックした場合
【目標・ゴール】
ページ上の該当箇所をクリックした際に、設定しているURLへページが飛ぶこと
HTML
1<!DOCTYPE html> 2<html> 3 <head> 4 <base target="_top"> 5 </head> 6 <body> 7 <style> 8 #header-fixed{ 9 border: 5px solid #fff; /* 表示領域を白枠で囲う */ 10 position: fixed; /* ヘッダーの固定 */ 11 padding:10px 0 10px; /* 上10px、下20pxをあける */ 12 top: 0px; /* 位置(上0px) */ 13 left: 10px; /* 位置(右0px) */ 14 width: 100%; /* 横幅100% */ 15 height:50px; /* 縦幅50px */ 16 background-color:#FFF /* バックの色 */ 17 } 18 #content{ 19 top: 70px; /* 位置(上0px) */ 20 left: 10px; /* 位置(右0px) */ 21 padding:60px 0 0px; 22 width: 100%; /* 横幅100% */ 23 background-color: "#000000" /* バックの色 */ 24 } 25 #menu{ 26 font-size : 15px; 27 border : 1px; 28 padding : 10px 20px 0px 0px; 29 } 30 table.search { 31 border: solid 1px #000000; 32 border-collapse: collapse; 33 } 34</style> 35 <div id='header-fixed'> 36 <form name="searchForm" method="post" action="サイトURL/exec?name=searchWord"> 37 <a id='menu' href="サイトURL/exec">全件表示</a> 38 検索文字:<input type="text" width="30%" name="searchWord" required> 39 <input type="submit"> 40 <font size="1px"> 現在の時刻:<span id="clock_time"></span></font> 41 </form> 42<script> 43function clock() 44{ 45 // 現在日時を表すインスタンスを取得 46 var now = new Date(); 47 var dateTime = now.getTime(); 48 var year = now.getFullYear(); 49 var month = now.getMonth()+1; 50 var day = now.getDate(); 51 var h = now.getHours(); 52 var mi = now.getMinutes(); 53 var s = now.getSeconds(); 54 document.getElementById("clock_time").innerHTML = year + "年" + month + "月" + day + "日 " + h + "時" + mi + "分" + s + "秒"; 55} 56setInterval(clock, 1000); 57</script> 58 </div> 59 <div id='content'> 60 <ul> 61 <? 62 // シートから用語集を表示する 63 var id ='スプレッドシートのID'; 64 var mySheet = SpreadsheetApp.openById(id).getSheetByName("用語集"); 65 var endrow = mySheet.getLastRow(); 66 var myData = mySheet.getRange(2, 1 , endrow-1 , 4).getValues(); 67 myMail = Session.getActiveUser().getEmail(); 68 search = getSearch(); 69 output.append('検索文字='+ escape_html(search)); 70 output.append('<table class="search" border="1">'); 71 output.append('<tr bgcolor="#aaccff"><th>カテゴリ</th><th>用語</th><th>内容</th></tr>'); 72 y=0; //検索結果のカウンタ 73 for(var i=0;i<myData.length;i++){ 74 category = myData[i][0]; 75 word = myData[i][1]; 76 content = myData[i][2]; 77 url = myData[i][3]; 78 if(search !== undefined){ 79 if (word.indexOf(search) !== -1){ 80 replace = word.replace(search, '<font color="#ff0000" size="2px"><b>' + search + '</b></font>'); 81 output.append('<tr>'); 82 output.append('<td width="10%" valign="top"><font color="#000000" size="2px">'+ category +'</font></td>'); 83 output.append('<td width="20%" align="left" valign="top"><font size="2px">'+ replace +'</font></td>'); 84 output.append('<td valign="top"><font style="bold" size="2px" color="#000000">'+ content +'</font></td>'); 85 output.append('</tr>'); 86 y ++; 87 } 88 }else{ 89 output.append('<tr>'); 90 output.append('<td width="10%" valign="top"><font color="#000000" size="2px">'+ category +'</font></td>'); 91 output.append('<td width="20%" align="left" valign="top"><font color="#000000" size="2px">'+ word +'</font></td>'); 92 output.append('<td valign="top"><font style="bold" size="2px" color="#000000">'+ content +'</font></td>'); 93 output.append('</tr>'); 94 } 95 } 96 output.append('</table>'); 97 if (y == 0){ 98 output.append('検索できませんでした。キーワードを変えてもう一度検索してください。'); 99 } 100 ?> 101 <? 102 function escape_html (string) { 103 if(typeof string !== 'string') { 104 return string; 105 } 106 return string.replace(/[&'`"<>]/g, function(match) { 107 return { 108 '&': '&', 109 "'": ''', 110 '`': '`', 111 '"': '"', 112 '<': '<', 113 '>': '>', 114 }[match] 115 }); 116 } 117 ?> 118 </ul> 119 </div> 120</body> 121</html>
JavaScript
1search = ""; 2var id ='スプレッドシートのID'; 3var sheet = SpreadsheetApp.openById(id).getSheetByName("用語集"); 4 5function doPost(e){ 6 doGet(e); 7 return HtmlService.createTemplateFromFile("index").evaluate(); 8} 9function doGet(e) { 10 search = e.parameter.searchWord; 11 if (e.parameter.name == undefined) { 12 //初期表示はビューのみ 13 return HtmlService.createTemplateFromFile("index").evaluate(); 14 } 15 if (e.parameter.searchWord !== undefined) { 16 //検索時も同じ画面に返します 17 return HtmlService.createTemplateFromFile("index").evaluate(); 18 } 19} 20function getSearch(){ 21 return search; 22}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/25 12:53
2021/05/26 23:08
2021/05/27 14:50
2021/05/27 23:19
2021/05/29 01:39
2021/05/29 01:59
2021/05/29 02:09
2021/06/14 00:29 編集
2021/05/29 02:14