質問編集履歴

1

全スクリプトに記述し直しました!

2020/08/29 05:55

投稿

cambodia
cambodia

スコア12

test CHANGED
File without changes
test CHANGED
@@ -1,9 +1,9 @@
1
+ # やりたいこと
2
+
3
+ **連続正解した時に、Bootstrapのalertを出現させたい**
4
+
1
5
  # 現状
2
6
 
3
- **連続正解した時に、Bootstrapのalertを出現させたい**
4
-
5
- # 現状
6
-
7
7
  プログラミング初心者です。
8
8
 
9
9
  わかりにくい説明かもしれませんが、どうぞよろしくお願いいたします。
@@ -48,10 +48,120 @@
48
48
 
49
49
 
50
50
 
51
+ <?php session_start(); ?>
52
+
53
+ <!DOCTYPE html>
54
+
55
+ <html lang="ja">
56
+
57
+ <head>
58
+
59
+ <meta charset="UTF-8">
60
+
61
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
62
+
63
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
64
+
65
+ <title>Document</title>
66
+
67
+
68
+
69
+ <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
70
+
71
+
72
+
73
+ <title>クイズ</title>
74
+
75
+ </head>
76
+
77
+ <body>
78
+
79
+ <div class="container">
80
+
81
+
82
+
83
+
84
+
85
+ <!-- データベースの情報をSELECTする -->
86
+
87
+
88
+
89
+
90
+
91
+ <?php
92
+
93
+
94
+
95
+ $no = 1;
96
+
97
+ if(!empty($_GET['no'])){
98
+
99
+ $no = $_GET['no'];
100
+
101
+ }
102
+
103
+ require_once('config.php');
104
+
105
+ $dsn = 'mysql:host=' . $config['host'] . '; dbname=' . $config['database'] . '; charset=utf8';
106
+
107
+ $user = $config['user'];
108
+
109
+ $password = $config['password'];
110
+
111
+
112
+
113
+ try{
114
+
115
+ $dbh = new PDO($dsn, $user, $password);
116
+
117
+ $sql = " SELECT * FROM kanakana WHERE no = :no ";
118
+
119
+ $stmt = $dbh->prepare($sql);
120
+
121
+ $stmt->bindValue(':no', $no);
122
+
123
+ $stmt->execute();
124
+
125
+ $data = $stmt->fetch();
126
+
127
+ }catch(PDOException $e){
128
+
129
+ echo $e->getMessage();
130
+
131
+ exit;
132
+
133
+ }
134
+
135
+
136
+
137
+ $mondai = ($data['mondai']);
138
+
139
+
140
+
141
+ ?>
142
+
143
+
144
+
51
145
  <div class = "row">
52
146
 
53
147
  <div class = "col-md-12">
54
148
 
149
+ カタカナ もんだい<?php echo $data['no']; ?><br>
150
+
151
+ </div>
152
+
153
+ </div>
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+ <div class = "row">
162
+
163
+ <div class = "col-md-12">
164
+
55
165
  <div class="alert alert-danger" role="alert">
56
166
 
57
167
  <h4>
@@ -62,10 +172,306 @@
62
172
 
63
173
  <?php
64
174
 
175
+
176
+
177
+ $rs = 0;
178
+
65
179
  $choice = $_POST['choice'];
66
180
 
67
181
  $answer = $_POST['answer'];
68
182
 
183
+
184
+
185
+ if($choice == $answer){ //もし、選択肢と答えが一致していたら、
186
+
187
+ if(isset($_SESSION['rs'])){ //もし、$_SESSION['rs']の中に値がセットされていたら、
188
+
189
+ $rs = $_SESSION['rs']; //$_SESSION['rs']の値を$rsに格納する
190
+
191
+ }
192
+
193
+ $rs++; //$rsの値に1ずつ加算していく
194
+
195
+ }
196
+
197
+
198
+
199
+ if($rs){ //もし、$rsに値があれば、
200
+
201
+ $_SESSION['rs'] = $rs; //$rsの値を$_SESSION['rs']に格納する
202
+
203
+ }else{ //それ以外は($rsに値がなければ)、
204
+
205
+ unset($_SESSION['rs']); //$_SESSION['rs']の値を削除する
206
+
207
+ }
208
+
209
+
210
+
211
+ if($rs >= 2){ //もし、$rsが2以上なら、
212
+
213
+ echo $rs."もん れんぞく せいかい!";
214
+
215
+ }
216
+
217
+
218
+
219
+ ?>
220
+
221
+
222
+
223
+
224
+
225
+ </h4>
226
+
227
+ </div>
228
+
229
+ </div>
230
+
231
+ </div>
232
+
233
+
234
+
235
+
236
+
237
+ <!--連続正解の時のphpスクリプト 終-->
238
+
239
+
240
+
241
+
242
+
243
+ <div class = "row">
244
+
245
+ <div class = "col-md-12">
246
+
247
+ せいかい は、
248
+
249
+
250
+
251
+ <table class="table table-bordered" style="table-layout:fixed;">
252
+
253
+ <tr>
254
+
255
+ <td class="align-middle" align = center>
256
+
257
+ <h5><?php echo $mondai; ?></h5>
258
+
259
+ </td>
260
+
261
+ </tr>
262
+
263
+ <tr>
264
+
265
+ <td class="align-middle" align = center>
266
+
267
+ <h5><?php echo $answer; ?></h5>
268
+
269
+ </td>
270
+
271
+ </tr>
272
+
273
+ </table>
274
+
275
+
276
+
277
+
278
+
279
+ <a class="btn btn-success btn-lg btn-block mt5 mb-5" href="katakana_test.php" role="button">つぎのもんだい</a>
280
+
281
+
282
+
283
+
284
+
285
+ <form action="test_finish.php" method="post">
286
+
287
+ <button type="submit" class="btn btn-dark btn-lg btn-block mt5 mb-5" name="finish">テストをおわります</button>
288
+
289
+ </form>
290
+
291
+
292
+
293
+
294
+
295
+ <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
296
+
297
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
298
+
299
+ <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/js/bootstrap.min.js" integrity="sha384-o+RDsa0aLu++PJvFqy8fFScvbHFLtbvScb8AjopnFD+iEQ7wo/CG0xlczd+2O/em" crossorigin="anonymous"></script>
300
+
301
+
302
+
303
+ </div>
304
+
305
+ </div>
306
+
307
+
308
+
309
+ </div>
310
+
311
+ </body>
312
+
313
+ </html>
314
+
315
+ ```
316
+
317
+ # 試したこと
318
+
319
+ そこで、アラートも連続正解の時に出現させて表示させたいと思ったので、
320
+
321
+ 以下のコードの通り、
322
+
323
+
324
+
325
+ if文の中で、連続正解したら、
326
+
327
+ div class のalert alert-dangerを変数$alertに格納する
328
+
329
+ としました。
330
+
331
+
332
+
333
+ に書き直しました。
334
+
335
+ が、うまくいきませんでした。
336
+
337
+
338
+
339
+ ```ここに言語を入力
340
+
341
+ katakana_test2.php
342
+
343
+
344
+
345
+ <?php session_start(); ?>
346
+
347
+ <!DOCTYPE html>
348
+
349
+ <html lang="ja">
350
+
351
+ <head>
352
+
353
+ <meta charset="UTF-8">
354
+
355
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
356
+
357
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
358
+
359
+ <title>Document</title>
360
+
361
+
362
+
363
+ <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
364
+
365
+
366
+
367
+ <title>クイズ</title>
368
+
369
+ </head>
370
+
371
+ <body>
372
+
373
+ <div class="container">
374
+
375
+
376
+
377
+
378
+
379
+ <!-- データベースの情報をSELECTする -->
380
+
381
+
382
+
383
+
384
+
385
+ <?php
386
+
387
+
388
+
389
+ $no = 1;
390
+
391
+ if(!empty($_GET['no'])){
392
+
393
+ $no = $_GET['no'];
394
+
395
+ }
396
+
397
+ require_once('config.php');
398
+
399
+ $dsn = 'mysql:host=' . $config['host'] . '; dbname=' . $config['database'] . '; charset=utf8';
400
+
401
+ $user = $config['user'];
402
+
403
+ $password = $config['password'];
404
+
405
+
406
+
407
+ try{
408
+
409
+ $dbh = new PDO($dsn, $user, $password);
410
+
411
+ $sql = " SELECT * FROM kanakana WHERE no = :no ";
412
+
413
+ $stmt = $dbh->prepare($sql);
414
+
415
+ $stmt->bindValue(':no', $no);
416
+
417
+ $stmt->execute();
418
+
419
+ $data = $stmt->fetch();
420
+
421
+ }catch(PDOException $e){
422
+
423
+ echo $e->getMessage();
424
+
425
+ exit;
426
+
427
+ }
428
+
429
+
430
+
431
+ $mondai = ($data['mondai']);
432
+
433
+
434
+
435
+ ?>
436
+
437
+
438
+
439
+ <div class = "row">
440
+
441
+ <div class = "col-md-12">
442
+
443
+ カタカナ もんだい<?php echo $data['no']; ?><br>
444
+
445
+ </div>
446
+
447
+ </div>
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+ <div class = "row">
458
+
459
+ <div class = "col-md-12">
460
+
461
+ <div class="<?php echo $alert ;?>" role="alert">
462
+
463
+ <h4>
464
+
465
+
466
+
467
+ <!--連続正解の時のphpスクリプト 始-->
468
+
469
+ <?php
470
+
471
+ $choice = $_POST['choice'];
472
+
473
+ $answer = $_POST['answer'];
474
+
69
475
  $rs = 0;
70
476
 
71
477
 
@@ -96,10 +502,20 @@
96
502
 
97
503
 
98
504
 
505
+ if(isset($_POST['finish'])) {
506
+
507
+ unset($_SESSION['rs']);
508
+
509
+ }
510
+
511
+
512
+
99
- if($rs >= 2){ //もし、$rsが2以上なら
513
+ if($rs >= 2){ //もし、$rsが2以上なら(つまり連続正解したら)
100
514
 
101
515
  echo $rs."もん れんぞく せいかい!";
102
516
 
517
+ $alert = "alert alert-danger";
518
+
103
519
  }
104
520
 
105
521
 
@@ -108,118 +524,8 @@
108
524
 
109
525
 
110
526
 
111
-
112
-
113
- </h4>
114
-
115
- </div>
116
-
117
- </div>
118
-
119
- </div>
120
-
121
527
  ```
122
528
 
123
- # 試したこと
124
-
125
- そこで、アラートも連続正解の時に出現させて表示させたいと思ったので、
126
-
127
- 以下のコードの通り、
128
-
129
-
130
-
131
- if文の中で、連続正解したら、
132
-
133
- div class のalert alert-dangerを変数$alertに格納する
134
-
135
- としました。
136
-
137
-
138
-
139
- に書き直しました。
140
-
141
- が、うまくいきませんでした。
142
-
143
-
144
-
145
- ```ここに言語を入力
146
-
147
- katakana_test2.php
148
-
149
-
150
-
151
- <div class = "row">
152
-
153
- <div class = "col-md-12">
154
-
155
- <div class="<?php echo $alert ;?>" role="alert">
156
-
157
- <h4>
158
-
159
-
160
-
161
- <!--連続正解の時のphpスクリプト 始-->
162
-
163
- <?php
164
-
165
- $choice = $_POST['choice'];
166
-
167
- $answer = $_POST['answer'];
168
-
169
- $rs = 0;
170
-
171
-
172
-
173
- if($choice == $answer){ //もし、選択肢と答えが一致していたら、
174
-
175
- if(isset($_SESSION['rs'])){ //もし、$_SESSION['rs']の中に値がセットされていたら、
176
-
177
- $rs = $_SESSION['rs']; //$_SESSION['rs']の値を$rsに格納する
178
-
179
- }
180
-
181
- $rs++; //$rsの値に1ずつ加算していく
182
-
183
- }
184
-
185
-
186
-
187
- if($rs){ //もし、$rsに値があれば、
188
-
189
- $_SESSION['rs'] = $rs; //$rsの値を$_SESSION['rs']に格納する
190
-
191
- }else{ //それ以外は($rsに値がなければ)、
192
-
193
- unset($_SESSION['rs']); //$_SESSION['rs']の値を削除する
194
-
195
- }
196
-
197
-
198
-
199
- if(isset($_POST['finish'])) {
200
-
201
- unset($_SESSION['rs']);
202
-
203
- }
204
-
205
-
206
-
207
- if($rs >= 2){ //もし、$rsが2以上なら(つまり連続正解したら)
208
-
209
- echo $rs."もん れんぞく せいかい!";
210
-
211
- $alert = "alert alert-danger";
212
-
213
- }
214
-
215
-
216
-
217
- ?>
218
-
219
-
220
-
221
- ```
222
-
223
529
 
224
530
 
225
531