http://1.1.1.1/stocker?function=addstock&name=xxx&amount=57
http://1.1.1.1/stocker?function=sell&name=xxx&amount=9
http://1.1.1.1/stocker?function=checkstock&name=xxx
以上のようにアクセスが合った場合に
xxx:48
のように出力したいです。(57-9=48)
初心者であまりわかっていませんが、どのようにすれば上記のように出力できるのでしょうか。
よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
なぜそういうことがしたいのかわかりませんが、とりあえず以下のような手順ですかね。
- GETメソッドからのデータを受け取れるWEBサーバを用意する
 - 受け取ったパラメータから機能を判定する
 - 機能に従った処理をする
(このとき、表示するような機能が指定されていれば表示する) 
投稿2019/01/23 12:07
総合スコア5158
0
JavaScriptだけでもQueryStringを取得することはできます。
本来はDBに在庫の状況を更新したいのでしょうが、
一応localStorageをローカルのDBとして使う手はないこともない・・・です。
下記を拡張子.htmlで保存して起動したあと、URL末尾に
?function=addstock&name=xxx&amount=57
?function=sell&name=xxx&amount=9
?function=checkstock&name=xxx
と順番に入力してみてください。
恐らくやりたいのはこういうことじゃないとは思いますが・・・。
少なくとも質問内容の要件は満たしてるかと。
html
1<div id="result"></div> 2 3<script> 4var query = getQueryString(); 5var func = query.function; 6var name = query.name; 7var amount = Number(query.amount); 8 9switch(func) { 10 case 'addstock': 11 addStock(name, amount); 12 break; 13 14 case 'sell': 15 sell(name, amount); 16 break; 17 18 case 'checkstock': 19 checkStock(name); 20 break; 21 22 case 'checkstockall': 23 checkStockAll(); 24 break; 25} 26 27function getStock(name) { 28 var stock = Number(localStorage.getItem(name)); 29 return isNaN(stock) ? 0 : stock; 30} 31 32function addStock(name, amount) { 33 var stock = getStock(name); 34 stock += amount; 35 localStorage.setItem(name, stock); 36 37 var result = name + 'を' + amount + '個入庫しました。'; 38 document.getElementById("result").innerText = result; 39} 40 41function sell(name, amount) { 42 var stock = getStock(name); 43 stock -= amount; 44 localStorage.setItem(name, stock); 45 46 var result = name + 'が' + amount + '個売れました。'; 47 document.getElementById("result").innerText = result; 48} 49 50function checkStock(name) { 51 var stock = getStock(name); 52 53 var result = name + 'の在庫は' + stock + '個です。'; 54 document.getElementById("result").innerText = result; 55} 56 57function checkStockAll() { 58 var result = ''; 59 for(var i = 0; i < localStorage.length; i++ ){ 60 var key = localStorage.key(i); 61 var stock = localStorage.getItem(key); 62 if (result != '') result += '\n'; 63 var row = key + 'の在庫は' + stock + '個です。'; 64 result += row; 65 } 66 document.getElementById("result").innerText = result; 67} 68 69function getQueryString() { 70 var args = {}; 71 var param = location.search.substring(1).split('&'); 72 for (var i = 0; i < param.length; i++) { 73 var keySearch = param[i].search(/=/); 74 var key = ''; 75 if (keySearch != -1) key = param[i].slice(0, keySearch); 76 var val = param[i].slice(param[i].indexOf('=', 0) + 1); 77 if (key != '') args[key] = decodeURI(val); 78 } 79 return args; 80} 81</script>
投稿2019/01/24 03:24
編集2019/01/24 03:54総合スコア280
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/23 12:19
2019/01/23 12:23
2019/01/23 12:31
2019/01/23 12:34