回答編集履歴

2

typo修正

2016/09/09 02:38

投稿

yambejp
yambejp

スコア114779

test CHANGED
@@ -134,7 +134,7 @@
134
134
 
135
135
  clearInterval(timer_id[id]);
136
136
 
137
- $("#"+id).html(msg[i]);
137
+ $("#"+id).html(msg[id]);
138
138
 
139
139
  done[id]=false;
140
140
 

1

サンプル

2016/09/09 02:38

投稿

yambejp
yambejp

スコア114779

test CHANGED
@@ -3,3 +3,187 @@
3
3
  ajaxで常にサーバーからデータをもらい、サーバー側でセッションでデータを持てば
4
4
 
5
5
  クライアント側で操作することはできません。
6
+
7
+
8
+
9
+ #追記
10
+
11
+ 一応、簡単なサンプル書いときますね
12
+
13
+ slot.htm
14
+
15
+ ```HTML
16
+
17
+ <style>
18
+
19
+ span {
20
+
21
+ display:table-cell;
22
+
23
+ width:100px;
24
+
25
+ height:100px;
26
+
27
+ text-align:center;
28
+
29
+ vertical-align:middle;
30
+
31
+ font-size:80px;
32
+
33
+ border:1px solid #000000;
34
+
35
+ }
36
+
37
+ </style>
38
+
39
+ <script src="jquery.js"></script>
40
+
41
+ <script>
42
+
43
+ var data={};
44
+
45
+ var done={};
46
+
47
+ var timer_id={};
48
+
49
+ $(function(){
50
+
51
+ $('.slot').each( function(){
52
+
53
+ var id=$(this).prop('id');
54
+
55
+ done[id]=false;
56
+
57
+ });
58
+
59
+ $('#start').click(function(){
60
+
61
+ for(i in done){
62
+
63
+ if(done[i]) return false;
64
+
65
+ }
66
+
67
+ clearData();
68
+
69
+ $('.slot').each( function(){
70
+
71
+ var id=$(this).prop('id');
72
+
73
+ if(!done[id]){
74
+
75
+ clearInterval(timer_id[id]);
76
+
77
+ timer_id[id] = setInterval(function(){ $('#'+id).text(Math.floor(Math.random()*10));}, 100);
78
+
79
+ done[id]=true;
80
+
81
+ }
82
+
83
+ });
84
+
85
+ });
86
+
87
+ $('.slot').click( function(e){
88
+
89
+ var id=$(this).prop('id');
90
+
91
+ if(typeof(data[id])=="undefined" && done[id]){
92
+
93
+ setData(id);
94
+
95
+ }
96
+
97
+ });
98
+
99
+ });
100
+
101
+ function clearData(){
102
+
103
+ $.ajax({
104
+
105
+ url : "get.php",
106
+
107
+ type:"post",
108
+
109
+ dataType:"json",
110
+
111
+ data :{"t":(+new Date())},
112
+
113
+ });
114
+
115
+ data={};
116
+
117
+ }
118
+
119
+ function setData(id){
120
+
121
+ $.ajax({
122
+
123
+ url : "get.php",
124
+
125
+ type:"post",
126
+
127
+ dataType:"json",
128
+
129
+ data :{"v":id,"t":(+new Date())},
130
+
131
+ success: function(msg){
132
+
133
+ data[id]=msg[id];
134
+
135
+ clearInterval(timer_id[id]);
136
+
137
+ $("#"+id).html(msg[i]);
138
+
139
+ done[id]=false;
140
+
141
+ },
142
+
143
+ });
144
+
145
+ }
146
+
147
+ </script>
148
+
149
+ <span id="slot1" class="slot">0</span>
150
+
151
+ <span id="slot2" class="slot">0</span>
152
+
153
+ <span id="slot3" class="slot">0</span>
154
+
155
+ <input type="button" id="start" value="start">
156
+
157
+
158
+
159
+ ```
160
+
161
+
162
+
163
+ get.php
164
+
165
+ ```ここに言語を入力
166
+
167
+ <?PHP
168
+
169
+ session_start();
170
+
171
+ $v=filter_input(INPUT_POST,"v",FILTER_VALIDATE_REGEXP,["options"=>["regexp"=>"/^slot[0-9]+$/","default"=>null]]);
172
+
173
+ if(is_null($v)){
174
+
175
+ unset($_SESSION["data"]);
176
+
177
+ print json_encode(null);
178
+
179
+ }else{
180
+
181
+ $_SESSION["data"][$v]=mt_rand(0,9);
182
+
183
+ print json_encode($_SESSION["data"]);
184
+
185
+ }
186
+
187
+ ?>
188
+
189
+ ```