回答編集履歴

3

ミニマム確認コード

2019/04/12 03:49

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -81,3 +81,139 @@
81
81
  }
82
82
 
83
83
  ```
84
+
85
+
86
+
87
+
88
+
89
+ # ミニマムコード
90
+
91
+
92
+
93
+ 画面側
94
+
95
+ ```html
96
+
97
+ <button type="button" class="deleteBtn" data-id="1">1削除</button>
98
+
99
+ <button type="button" class="deleteBtn" data-id="2">2削除</button>
100
+
101
+ <button type="button" class="deleteBtn" data-id="3">3削除</button>
102
+
103
+ <button type="button" class="deleteBtn" data-id="4">4削除</button>
104
+
105
+ <script
106
+
107
+ src="https://code.jquery.com/jquery-3.3.1.min.js"
108
+
109
+ integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
110
+
111
+ crossorigin="anonymous"></script>
112
+
113
+ <script>
114
+
115
+ $(".deleteBtn").on('click',function(){
116
+
117
+ console.log($(this).data('id'));
118
+
119
+ $.ajax({
120
+
121
+ type: 'POST',
122
+
123
+ dataType:'json',
124
+
125
+ url:'a.php',
126
+
127
+ data:{
128
+
129
+ btnid:$(this).data('id'),
130
+
131
+ },
132
+
133
+ success:function(data) {
134
+
135
+ console.log('success');
136
+
137
+ console.log(data);
138
+
139
+ },
140
+
141
+ error:function(XMLHttpRequest, textStatus, errorThrown) {
142
+
143
+ console.log(XMLHttpRequest);
144
+
145
+ console.log(textStatus);
146
+
147
+ console.log(errorThrown);
148
+
149
+ }
150
+
151
+ });
152
+
153
+ });
154
+
155
+ </script>
156
+
157
+ ```
158
+
159
+
160
+
161
+ ajaxで呼び出される側
162
+
163
+ ```php
164
+
165
+ <?php
166
+
167
+ echo json_encode( $_POST['btnid'] );
168
+
169
+ ```
170
+
171
+
172
+
173
+ console.log結果:
174
+
175
+ ```
176
+
177
+ 1
178
+
179
+ success
180
+
181
+ 1
182
+
183
+ 2
184
+
185
+ success
186
+
187
+ 2
188
+
189
+ 3
190
+
191
+ success
192
+
193
+ 3
194
+
195
+ ```
196
+
197
+
198
+
199
+ ※ちなみにheader()つけても同じでした
200
+
201
+ ```php
202
+
203
+ <?php
204
+
205
+ header('Content-type: application/json');
206
+
207
+ echo json_encode( $_POST['btnid'] );
208
+
209
+ ```
210
+
211
+
212
+
213
+ ちなみに存在しないphp、URLをurlに指定した場合は下記のようなエラーが出た
214
+
215
+ `SyntaxError: Unexpected token s in JSON at position 0`
216
+
217
+
218
+
219
+ URL間違ってるかも?

2

修正

2019/04/12 03:49

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- 試してみてほしいこと2
31
+ 試してみてほしいこと2(※根本的な解決方法ではありません)
32
32
 
33
33
  ```php
34
34
 
@@ -56,7 +56,7 @@
56
56
 
57
57
 
58
58
 
59
- 試してみてほしいこと3
59
+ 試してみてほしいこと3(※データベースに影響を及ぼす処理にはtry-catchは必須です)
60
60
 
61
61
  ```php
62
62
 

1

追記

2019/04/12 00:07

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -25,3 +25,59 @@
25
25
  - [モダンPHPアンチパターン#ファイルの最後に?>を書く](https://qiita.com/tadsan/items/157969b338fd8b782b21)
26
26
 
27
27
  > 不要な?>を書いてはいけない理由は明確で、<?php … ?>の外にあるコードは出力されてしまうからだ。つまり、誰かが?>の直後に余分な改行を入れてしまったら、わかりにくいタイミングで意図しない改行が**出力されることになる**。
28
+
29
+
30
+
31
+ 試してみてほしいこと2
32
+
33
+ ```php
34
+
35
+ <?php
36
+
37
+ ob_start(); //追加
38
+
39
+
40
+
41
+ require_once "db.php";
42
+
43
+
44
+
45
+ $jsondata = $_POST['btnid'];
46
+
47
+ $resultcontents = mysqli_query($mysqli,"delete from userdata where id = '".$jsondata."'");
48
+
49
+ ob_end_clean(); //追加
50
+
51
+ header('Content-type: application/json');
52
+
53
+ echo json_encode( $jsondata );
54
+
55
+ ```
56
+
57
+
58
+
59
+ 試してみてほしいこと3
60
+
61
+ ```php
62
+
63
+ try{
64
+
65
+ require_once "db.php";
66
+
67
+
68
+
69
+ $jsondata = $_POST['btnid'];
70
+
71
+ $resultcontents = mysqli_query($mysqli,"delete from userdata where id = '".$jsondata."'");
72
+
73
+ header('Content-type: application/json');
74
+
75
+ echo json_encode( $jsondata );
76
+
77
+ }catch(mysqli_sql_exception $e){
78
+
79
+ echo json_encode( $e );
80
+
81
+ }
82
+
83
+ ```