質問編集履歴

5

修正したソースコードを追記しました。

2019/08/01 07:36

投稿

quaser
quaser

スコア7

test CHANGED
@@ -1 +1 @@
1
- PHP if文の中でJSは実行できない?
1
+ PHP if文の中でJSは実行できない?[追記あり]
test CHANGED
@@ -16,9 +16,15 @@
16
16
 
17
17
  読み込まれずスルーされます。
18
18
 
19
+ ※追記 
20
+
21
+ ⇒if文の中に原因がありそうだったので、if文中身を追加しました。
22
+
19
- ※追記 if文の中原因がありそうだったので確認したところHeader関数のリダイレクト処理が原因のようです。
23
+ 返答を元に確認したところHeader関数のリダイレクト処理が原因のようです。
20
24
 
21
25
  この処理が入るとなぜJSが実行されないのでしょうか?
26
+
27
+ ⇒Header関数の使い方に誤りがありました。
22
28
 
23
29
 
24
30
 
@@ -36,9 +42,29 @@
36
42
 
37
43
  echo "<script>alert('Hello')</script>" //実行されない
38
44
 
45
+  }
46
+
47
+ ?>
48
+
49
+ ```
50
+
51
+ ```ここに言語を入力
52
+
53
+ //if文の中身を追記しました。
54
+
55
+ <?php
56
+
57
+ echo "<script>alert('Hello')</script>" //実行される
39
58
 
40
59
 
60
+
61
+ if($mode == "delete"){
62
+
63
+ echo "<script>alert('Hello')</script>" //実行されない
64
+
65
+  
66
+
41
- try {
67
+ try {
42
68
 
43
69
  $db->beginTransaction();
44
70
 
@@ -66,7 +92,7 @@
66
92
 
67
93
  exit; 
68
94
 
69
-  }
95
+ }
70
96
 
71
97
  ?>
72
98
 

4

Code機能を利用

2019/08/01 07:35

投稿

quaser
quaser

スコア7

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  ### 該当のソースコード
26
26
 
27
-
27
+ ```ここに言語を入力
28
28
 
29
29
  <?php
30
30
 
@@ -70,27 +70,11 @@
70
70
 
71
71
  ?>
72
72
 
73
- ### 試したこと
74
-
75
- 試しに、if文の途中で切ってHTML文としてJS分を挟んでも実行されません。
76
-
77
- <?php
73
+ ```
78
-
79
- echo "<script>alert('Hello')</script>" //実行される
80
74
 
81
75
 
82
76
 
83
- if($mode == "delete"){
84
-
85
- ?>
86
-
87
- <script>alert('Hello')</script> //実行されない
88
-
89
- <?php
77
+ ### 試したこと
90
-
91
-  }
92
-
93
- ?>
94
78
 
95
79
 
96
80
 

3

test ⇒ deleteに変更

2019/08/01 07:11

投稿

quaser
quaser

スコア7

test CHANGED
File without changes
test CHANGED
@@ -80,7 +80,7 @@
80
80
 
81
81
 
82
82
 
83
- if($mode == "test"){
83
+ if($mode == "delete"){
84
84
 
85
85
  ?>
86
86
 

2

if文中を記載

2019/08/01 06:53

投稿

quaser
quaser

スコア7

test CHANGED
File without changes
test CHANGED
@@ -16,6 +16,10 @@
16
16
 
17
17
  読み込まれずスルーされます。
18
18
 
19
+ ※追記 if文の中に原因がありそうだったので確認したところHeader関数のリダイレクト処理が原因のようです。
20
+
21
+ この処理が入るとなぜJSが実行されないのでしょうか?
22
+
19
23
 
20
24
 
21
25
  ### 該当のソースコード
@@ -28,9 +32,39 @@
28
32
 
29
33
 
30
34
 
31
- if($mode == "test"){
35
+ if($mode == "delete"){
32
36
 
33
37
  echo "<script>alert('Hello')</script>" //実行されない
38
+
39
+
40
+
41
+ try {
42
+
43
+ $db->beginTransaction();
44
+
45
+ $stmt = $db->prepare("DELETE FROM posts WHERE post_id = ?");
46
+
47
+ $stmt->execute(array($request["post_id"]));
48
+
49
+ $db->commit();
50
+
51
+ } catch (PDOException $e) {
52
+
53
+ // エラー発生時
54
+
55
+ $db->rollBack();
56
+
57
+ exit("クエリの実行に失敗しました");
58
+
59
+ }
60
+
61
+
62
+
63
+ //header関数でリダイレクト
64
+
65
+ header("Location: post_list.php"); //ここが原因
66
+
67
+ exit; 
34
68
 
35
69
   }
36
70
 

1

$mode == "test" 個所を修正

2019/08/01 06:51

投稿

quaser
quaser

スコア7

test CHANGED
File without changes
test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- if($mode == test){
31
+ if($mode == "test"){
32
32
 
33
33
  echo "<script>alert('Hello')</script>" //実行されない
34
34
 
@@ -46,7 +46,7 @@
46
46
 
47
47
 
48
48
 
49
- if($mode == test){
49
+ if($mode == "test"){
50
50
 
51
51
  ?>
52
52