質問編集履歴

1

ソースの修正

2017/06/18 11:52

投稿

yuuuui
yuuuui

スコア59

test CHANGED
@@ -1 +1 @@
1
- jQuery チェックボックスのname属性とチェックされた値を別々にajaxでPOSTをしたい
1
+ jQuery チェックボックスのvalue属性の値とチェックされた値を別々にajaxでPOSTをしたい
test CHANGED
@@ -114,13 +114,41 @@
114
114
 
115
115
 
116
116
 
117
+
118
+
117
119
  ###発生している問題
118
120
 
121
+ 上記ソースコードだと例えばcheck1をチェックした際
122
+
119
- 1つの変数に2つの値をpostできているのは確認てい、別々でpostできいです。
123
+ sendというsubmitボタンを押下後alert ` 1選択されました。 1選択されました。`とります。
124
+
120
-
125
+ ` console.log(ids); ` には
126
+
121
-
127
+ ```
128
+
122
-
129
+ (2) ["1", 1]
130
+
131
+ 0: "1"
132
+
133
+ 1: 1
134
+
135
+ length: 2
136
+
137
+ ▶︎__proto__: Array(0)
138
+
139
+ ```
140
+
141
+ と表示されます。
142
+
143
+ ここを `["1",1] `から`["1"]` `1` とチェックボックスのvalue属性の値とチェックボックスの1の値を別々のdataとしてajaxを用いphp側でpostされたかどうかを確認したいです。
144
+
145
+ そしてゴールとしてalertで ` 1が選択されました。 1がチェックされました ` と表示させたいと思っています(チェックされましたというのはおかしいのですがチェックボックスがチェックされた1か0を参照したいと思っています)
146
+
147
+
148
+
149
+
150
+
123
- ###期待する動作
151
+ ###期待する動作をすると思っていたソースコード
124
152
 
125
153
  ```JavaScript
126
154
 
@@ -132,58 +160,56 @@
132
160
 
133
161
  var ids=[];
134
162
 
135
- $("[name='ids[]']:checked").each(function(){
163
+ $("[name='ids[]']:checked").each(function(){
136
-
164
+
137
- ids.push(this.value);
165
+ ids.push(this.value);
166
+
138
-
167
+ });
168
+
139
-
169
+ //console.log(ids);
170
+
171
+
172
+
173
+ //チェックされたかどうか(1,0)を変数checkedに代入したい
174
+
175
+ var checked =[];
176
+
177
+ $("[name='ids[]']:checked").each(function(){
178
+
179
+ ids.push(Number(this.checked));
180
+
181
+ });
182
+
183
+ //console.log(checked);
184
+
185
+
186
+
187
+ $.ajax({
188
+
189
+ type: "POST",
190
+
191
+ url: "form.php",
192
+
193
+ data: {
194
+
195
+ "ids":ids,
196
+
197
+ "checked":checked
198
+
199
+ },
200
+
201
+ success: function(data){
202
+
203
+ if(data != '') {
204
+
205
+ alert(data);
206
+
207
+ }
208
+
209
+ }
140
210
 
141
211
  });
142
212
 
143
- //console.log(ids);
144
-
145
-
146
-
147
- //チェックされたかどうか(1,0)を変数checkedに代入したい
148
-
149
- var checked =
150
-
151
- $("[name='ids[]']:checked").each(function(){
152
-
153
- ids.push(Number(this.checked));
154
-
155
- });
156
-
157
- // console.log(checked);
158
-
159
-
160
-
161
- $.ajax({
162
-
163
- type: "POST",
164
-
165
- url: "form.php",
166
-
167
- data: {
168
-
169
- "ids":ids,
170
-
171
- "checked":checked
172
-
173
- },
174
-
175
- success: function(data){
176
-
177
- if(data != '') {
178
-
179
- alert(data);
180
-
181
- }
182
-
183
- }
184
-
185
- });
186
-
187
213
  return false; //submitイベントハンドラにfalseを返し,action処理をキャンセル
188
214
 
189
215
  });
@@ -222,4 +248,46 @@
222
248
 
223
249
 
224
250
 
251
+ 期待すると思っていたソースコードでは
252
+
253
+ `console.log(ids);`
254
+
255
+ ```
256
+
257
+ ["1"]
258
+
259
+ 0: "1"
260
+
261
+ 1: 1
262
+
263
+ length: 2
264
+
265
+ ▶︎__proto__: Array(0)
266
+
267
+
268
+
269
+ ```
270
+
271
+ `console.log(checked);`
272
+
273
+ ```
274
+
275
+ []
276
+
277
+ length: 0
278
+
279
+ ▶︎__proto__: Array(0)
280
+
281
+
282
+
283
+ ```
284
+
285
+ となっており別々のデータとしてPOSTできたのかと思ったのですが
286
+
287
+ alertで ` 1が選択されました。 1が選択されました。`
288
+
289
+ と表示されました。
290
+
291
+ `$_POST['checked']`がNULLになってしまっているのでお教えいただきたいと思っています。
292
+
225
293
  よろしくお願いします。