javascriptでゲームを作っています。
ゲームのデータそのものはサーバーに保管し、クライアント側では、サーバー上の文字を表示するだけの仕様となります。
データそのものは下記のサーバーに保管されています。
ユーザーID(sha256)とパスワード(新規接続ごとに毎回発行したものをcookieで保管)をPOSTすることにより、下記の表示が可能です。
<div id="point">256</div> <div id="money">45000</div>現在の仕様
xmlhttpで取得したものをクライアント側で表示させます。
ただ
https://example.com/data.php
を xmlhttpで取得すると
がまとまって表示されてしまいます。
ポイント、保有金額は任意の場所に分けて表示させたいため、
data_point.php とdata_money.phpを新たに作り、それぞれはポイントと
金額だけを表示するようにします。
https://example.com/data_point.php
<div id="point">256</div>https://example.com/data_money.php
<div id="money">45000</div>上記のように2つのPHPに分けて独自に表示させ、
そこから取得できた
を任意の場所に置くことにより、ポイントと金額を別々の場所に表示させています。
javascript
1 2 <script language="javascript" type="text/javascript"> 3 function OnButtonClick() { 4 var xmlhttp = new XMLHttpRequest(); 5 xmlhttp.onreadystatechange = function () { 6 var READYSTATE_COMPLETED = 4; 7 var HTTP_STATUS_OK = 200; 8 if (this.readyState == READYSTATE_COMPLETED && this.status == HTTP_STATUS_OK) { 9 // レスポンスの表示 10 var outFrame = document.getElementById('my_money_view_p'); 11 outFrame.innerHTML = this.responseText; 12 } 13 } 14 var textBox1 = document.getElementById('Text1'); 15 var textBox2 = document.getElementById('Text2'); 16 var PostData = encodeURIComponent('usr') + '=' + encodeURIComponent(textBox1.value) 17 + '&' + encodeURIComponent('pass') + '=' + encodeURIComponent(textBox2.value); 18 PostData = PostData.replace(/%20/g, '+'); 19 xmlhttp.open('POST', 'https://example.com/data_money.php'); 20 xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 21 xmlhttp.send(PostData); 22 } 23 </script> 24</head> 25<body> 26 <input id="Text1" type="hidden" name="usr"/><br/> 27 <input id="Text2" type="hidden" name="pass"/><br/> 28 29<script> 30 $("[name='usr']").val(usr); 31 $("[name='pass']").val(pass); 32</script> 33 <input id="my_money_click_p" type="hidden" value="送信" onclick="OnButtonClick();"/> 34 <div id="my_money_view_p"></div> 35</body> 36</html> 37<script> 38document.getElementById('my_money_click_p').click(); 39</script> 40 41 42 43 44 <script language="javascript" type="text/javascript"> 45 function OnButtonClick() { 46 var xmlhttp44 = new XMLHttpRequest(); 47 xmlhttp44.onreadystatechange = function () { 48 var READYSTATE_COMPLETED = 4; 49 var HTTP_STATUS_OK = 200; 50 if (this.readyState == READYSTATE_COMPLETED && this.status == HTTP_STATUS_OK) { 51 // レスポンスの表示 52 var outFrame44 = document.getElementById('my_point_view_p'); 53 outFrame44.innerHTML = this.responseText; 54 } 55 } 56 var textBox144 = document.getElementById('Text144'); 57 var textBox244 = document.getElementById('Text244'); 58 var PostData = encodeURIComponent('usr') + '=' + encodeURIComponent(textBox1.value) 59 + '&' + encodeURIComponent('pass') + '=' + encodeURIComponent(textBox2.value); 60 PostData44 = PostData44.replace(/%20/g, '+'); 61 xmlhttp44.open('POST', 'https://example.com/data_point.php'); 62 xmlhttp44.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 63 xmlhttp44.send(PostData44); 64 } 65 </script> 66</head> 67<body> 68 <input id="Text144" type="hidden" name="usr"/><br/> 69 <input id="Text244" type="hidden" name="pass"/><br/> 70 71<script> 72 $("[name='usr']").val(usr); 73 $("[name='pass']").val(pass); 74</script> 75 <input id="my_point_click_p" type="hidden" value="送信" onclick="OnButtonClick();"/> 76 <div id="my_point_view_p"></div> 77</body> 78</html> 79<script> 80document.getElementById('my_point_click_p').click(); 81</script> 82 83
やりたいこと。
現在は
金額については
xmlhttp.open('POST', 'https://example.com/data_money.php');で <div id="my_money_view_p"></div>を取得、
ポイントについては
xmlhttp44.open('POST', 'https://example.com/data_point.php');で<div id="my_point_view_p"></div>を取得していますが、
このように、phpが項目ごとに独立しているのではなく、
xmlhttp.open('POST', 'https://example.com/data.php');の1回だけで
<div id="point">256</div> <div id="money">45000</div> を一気に取得し、 <div id="my_point_view_p"></div> および <div id="my_money_view_p"></div> をそれぞれ任意の場所に表示できるようにしたいというのが希望です。PHPを用いたスクレイピングでは、1回に複数のIDを取得し、それぞれを
任意の場所に表示させることが可能ですが、同じようなことを希望しています。
このようなことが可能かご教示いただきたくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/24 06:36
2020/07/24 07:11 編集
2020/07/24 07:29