前提・実現したいこと
・前提
顧客IDを入力して、紐づく商品情報一覧を検索するというhtmlを作成中です。
条件としては、フロント側だけでデータの処理をするので、JavaScriptのlocalStorageを用いて、データの管理を行っています。
実行環境は、ブラウザIE11でローカル環境です。(実行環境は変更不可です。)
・実現したいこと
上記を実現する際、localStorageが使用できないため、localStorageを使用する以外の代替案を教えて下さい。
sales_order.htmlで入力した値に応じて、order_result.htmlに結果を出力する機能を実現したいです。
該当のソースコード
sales_order.html
<html lang=“ja”> <head> <meta http-equiv="content-language" content="ja"> <meta name="robots" content="noindex,nofollow"> <meta charset="UTF-8"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css"> <link rel="stylesheet" type="text/css" href="css/style.css"> <title>受注確認画面</title> </head> <body> <script> var storage = localStorage; storage.setItem("clientID", " "); storage.setItem("testd1", " "); //省略 function orderkaki(){ if (!window.localStorage){ alert("お使いのブラウザはlocalstorageに対応してません。"); } var storage = localStorage; storage.setItem("clientID", document.form2.s.value); if(document.form2.s.value == ""){ alert("顧客IDが未入力です!"); storage.setItem("clientID", " "); storage.setItem("testd1", " "); //省略 document.form2.action = './sales_order.html'; } if((document.form2.s.value != "")&&(document.form2.s.value != "123456789")&&(document.form2.s.value != "111111111")&&(document.form2.s.value != "222222222")&&(document.form2.s.value != "333333333")){ alert("顧客IDが存在しません。"); storage.setItem("testd1", " "); //省略 document.form2.action = './sales_order.html'; } if(document.form2.s.value == "123456789"){ storage.setItem("testd1", "2019/08/03"); storage.setItem("testd2", "2019/07/09"); storage.setItem("testd3", "2019/07/01"); storage.setItem("testd4", "2019/07/01"); storage.setItem("testd5", "2019/06/20"); storage.setItem("testc1", "A001"); storage.setItem("testc2", "C001"); storage.setItem("testc3", "D001"); storage.setItem("testc4", "B001"); storage.setItem("testc5", "E001"); storage.setItem("testn1", "42"); storage.setItem("testn2", "21"); storage.setItem("testn3", "76"); storage.setItem("testn4", "21"); storage.setItem("testn5", "100"); } //省略 </script> <main class="confirmation"> <h1>受注確認画面</h1> <div class="wrapper content clearfix"> <div class="left"> <ul class="leftBox"> <li class="menu"><a href="./main.html"><p>Menu</p></a></li> <li class="order"><a href="./order_entry.html"><p>受注入力</p></a></li> <li class="confirmation"><a href="./sales_order.html"><p>受注確認</p></a></li> <li class="stock"><a href="./inventory_control.html"><p>在庫管理</p></a></li> </ul> </div> <div class="right"> <form id="form1" action="order_result.html" method="post" name="form2" onsubmit="orderkaki()"> <table class="mt20"> <tr> <th><p class="productCode">顧客ID</p></th> <td> <input id="sbox" id="s" name="s" type="text" placeholder="IDを入力" /> </td> </tr> </table> <input id="sbtn" class="button mt30" type="submit" value="検索" /> </form> </div> </div> </main> </body> </html>
order_result.html
<!DOCTYPE html> <html lang=“ja”> <head> <meta http-equiv="content-language" content="ja"> <meta name="robots" content="noindex,nofollow"> <meta charset="UTF-8"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css"> <link rel="stylesheet" type="text/css" href="css/style.css"> <title>受注確認結果画面</title> <style> #table table { width: 100%; } #table table th { background: #ccc; } </style> </head> <body> <script type="text/javascript"> var storage = localStorage; var cclientID = storage.getItem("clientID"); var ctestd1 = storage.getItem("testd1"); var ctestd2 = storage.getItem("testd2"); var ctestd3 = storage.getItem("testd3"); var ctestd4 = storage.getItem("testd4"); var ctestd5 = storage.getItem("testd5"); var ctestc1 = storage.getItem("testc1"); var ctestc2 = storage.getItem("testc2"); var ctestc3 = storage.getItem("testc3"); var ctestc4 = storage.getItem("testc4"); var ctestc5 = storage.getItem("testc5"); var ctestn1 = storage.getItem("testn1"); var ctestn2 = storage.getItem("testn2"); var ctestn3 = storage.getItem("testn3"); var ctestn4 = storage.getItem("testn4"); var ctestn5 = storage.getItem("testn5"); // 表の動的作成 function makeTable(data, tableId){ // 表の作成開始 var rows=[]; var table = document.createElement("table"); // 表に2次元配列の要素を格納 for(i = 0; i < data.length; i++){ rows.push(table.insertRow(-1)); // 行の追加 for(j = 0; j < data[0].length; j++){ cell=rows[i].insertCell(-1); cell.appendChild(document.createTextNode(data[i][j])); // 背景色の設定 } } // 指定したdiv要素に表を加える document.getElementById(tableId).appendChild(table); } window.onload = function(){ var data; if(cclientID == "123456789") { data = [ ["発注日", "商品コード", "発注数"], [ctestd1, ctestc1, ctestn1], [ctestd2, ctestc2, ctestn2], [ctestd3, ctestc3, ctestn3], [ctestd4, ctestc4, ctestn4], [ctestd5, ctestc5, ctestn5] ]; } //省略 } else { data = []; } // 表の動的作成 makeTable(data,"table"); }; </script> <main class="confirmation"> <h1>受注確認結果画面</h1> <div class="wrapper content clearfix"> <div class="left"> <ul class="leftBox"> <li class="menu"><a href="./main.html"><p>Menu</p></a></li> <li class="order"><a href="./order_entry.html"><p>受注入力</p></a></li> <li class="confirmation"><a href="./sales_order.html"><p>受注確認</p></a></li> <li class="stock"><a href="./inventory_control.html"><p>在庫管理</p></a></li> </ul> </div> <div class="right"> <form id="form1" action="./order_result.html"> <table class="result"> <tr> <th class="productCode">顧客ID</th> <td><script>document.write(cclientID)</script></td> </tr> </table> <input id="sbtn" class="button mt15 mb15" type="submit" value="検索" /> </form> <div id="table" class="result"></div> </div> </div> </main> </body> </html>
試したこと
・ローカル環境かつブラウザがIE11では、localStorage(WebStorage)は使用できない。
https://qiita.com/tsunet111/items/45bbd7841f88dbc04746
・sessionStorageも同様に使用できなかった。(WebStorageのため)
・cokkieでもダメでした。
https://teratail.com/questions/101774
補足情報
・OS:Win10
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/11/01 02:36
2019/11/01 02:45 編集
退会済みユーザー
2019/11/01 03:01