回答編集履歴
6
修正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
test.php
|
1
|
+
test.phpが追記されましたが、結果をわかりやすくするためにtest.phpの内容は以下のコードとさせていただきます。
|
2
2
|
|
3
3
|
```PHP
|
4
4
|
|
@@ -22,7 +22,11 @@
|
|
22
22
|
|
23
23
|
```
|
24
24
|
|
25
|
+
本題
|
26
|
+
|
27
|
+
---
|
28
|
+
|
25
|
-
|
29
|
+
まず下のコードをごらんください。
|
26
30
|
|
27
31
|
```javascript
|
28
32
|
|
@@ -30,7 +34,9 @@
|
|
30
34
|
|
31
35
|
```
|
32
36
|
|
37
|
+
これを質問者さんはチェックボックスの値すべてを取り出す目的で書いたものだと思われます。
|
38
|
+
|
33
|
-
|
39
|
+
しかし、このようなコードだと、**一番上のname[]の値しか取り出されない**ので、[map](http://semooh.jp/jquery/api/utilities/jQuery.map/array,+callback/)でチェックボックスの値を全部とりだしてあげる必要があります。そうすると、この部分はこのようにかけます。
|
34
40
|
|
35
41
|
```javascript
|
36
42
|
|
@@ -47,6 +53,8 @@
|
|
47
53
|
```
|
48
54
|
|
49
55
|
つまり、コード全体は以下のようになります。
|
56
|
+
|
57
|
+
質問者さんのコードに間違っているところがあったので修正も行いました。修正した箇所にはコメントを入れました。
|
50
58
|
|
51
59
|
```HTML
|
52
60
|
|
5
修正
test
CHANGED
@@ -94,7 +94,7 @@
|
|
94
94
|
|
95
95
|
}
|
96
96
|
|
97
|
-
$.post('
|
97
|
+
$.post('test.php', {
|
98
98
|
|
99
99
|
'city[]': $("input[name='name[]']").map(
|
100
100
|
|
4
追記
test
CHANGED
@@ -24,7 +24,13 @@
|
|
24
24
|
|
25
25
|
質問者さんのコードに間違っているところがあったので修正も行いました。修正した箇所にはコメントを入れました。
|
26
26
|
|
27
|
+
```javascript
|
28
|
+
|
29
|
+
$('input[name="name[]"]').val()
|
30
|
+
|
31
|
+
```
|
32
|
+
|
27
|
-
|
33
|
+
というようなコードだと、**一番上のname[]の値しか取り出されない**ので、[map](http://semooh.jp/jquery/api/utilities/jQuery.map/array,+callback/)でname[]の中身を全部とりだしてあげる必要があります。そうすると、この部分はこのようにかけます。
|
28
34
|
|
29
35
|
```javascript
|
30
36
|
|
@@ -106,27 +112,11 @@
|
|
106
112
|
|
107
113
|
}
|
108
114
|
|
109
|
-
)
|
115
|
+
);
|
110
|
-
|
111
|
-
;
|
112
116
|
|
113
117
|
});
|
114
118
|
|
115
119
|
});
|
116
|
-
|
117
|
-
</script>
|
118
|
-
|
119
|
-
<script>
|
120
|
-
|
121
|
-
$("input[name='name[]']").map(
|
122
|
-
|
123
|
-
function () {
|
124
|
-
|
125
|
-
return $(this).val();
|
126
|
-
|
127
|
-
}
|
128
|
-
|
129
|
-
).get();
|
130
120
|
|
131
121
|
</script>
|
132
122
|
|
3
追記を受けて内容変更
test
CHANGED
@@ -22,11 +22,25 @@
|
|
22
22
|
|
23
23
|
```
|
24
24
|
|
25
|
-
また、city[]というのがどこにもないので、name[]としますと以下のように書くことができます。
|
26
|
-
|
27
25
|
質問者さんのコードに間違っているところがあったので修正も行いました。修正した箇所にはコメントを入れました。
|
28
26
|
|
29
|
-
|
27
|
+
$('input[name="name[]"]').val()というようなコードだと、**一番上のname[]の値しか取り出されない**ので、mapとかでname[]の中身を全部とりだしてあげる必要があります。そうすると、この部分はこのようにかけます。
|
28
|
+
|
29
|
+
```javascript
|
30
|
+
|
31
|
+
$("input[name='name[]']").map(
|
32
|
+
|
33
|
+
function () {
|
34
|
+
|
35
|
+
return $(this).val();
|
36
|
+
|
37
|
+
}
|
38
|
+
|
39
|
+
).get();
|
40
|
+
|
41
|
+
```
|
42
|
+
|
43
|
+
つまり、コード全体は以下のようになります。
|
30
44
|
|
31
45
|
```HTML
|
32
46
|
|
@@ -64,27 +78,9 @@
|
|
64
78
|
|
65
79
|
$('#all').change(function () {
|
66
80
|
|
67
|
-
var names = [];
|
68
|
-
|
69
81
|
if ($(this).prop('checked')) {
|
70
82
|
|
71
83
|
$('input[name="name[]"]').prop('checked', true);
|
72
|
-
|
73
|
-
$("[name='name[]']:checked").each(function () {
|
74
|
-
|
75
|
-
names.push(this.value);
|
76
|
-
|
77
|
-
});
|
78
|
-
|
79
|
-
$.post('test.php', {
|
80
|
-
|
81
|
-
'city[]': names//ここのcity[]はシングルクォートもしくはダブルクォートで囲まないといけません。
|
82
|
-
|
83
|
-
}, function (rs) {
|
84
|
-
|
85
|
-
$("#rightSide").html($('#rightSide', rs).html());
|
86
|
-
|
87
|
-
});
|
88
84
|
|
89
85
|
} else {
|
90
86
|
|
@@ -92,9 +88,45 @@
|
|
92
88
|
|
93
89
|
}
|
94
90
|
|
91
|
+
$.post('q1.php', {
|
92
|
+
|
93
|
+
'city[]': $("input[name='name[]']").map(
|
94
|
+
|
95
|
+
function () {
|
96
|
+
|
97
|
+
return $(this).val();
|
98
|
+
|
99
|
+
}).get()
|
100
|
+
|
101
|
+
},
|
102
|
+
|
103
|
+
function (rs) {
|
104
|
+
|
105
|
+
$("#rightSide").html($('#rightSide', rs).html());
|
106
|
+
|
107
|
+
}
|
108
|
+
|
109
|
+
)
|
110
|
+
|
111
|
+
;
|
112
|
+
|
95
113
|
});
|
96
114
|
|
97
115
|
});
|
116
|
+
|
117
|
+
</script>
|
118
|
+
|
119
|
+
<script>
|
120
|
+
|
121
|
+
$("input[name='name[]']").map(
|
122
|
+
|
123
|
+
function () {
|
124
|
+
|
125
|
+
return $(this).val();
|
126
|
+
|
127
|
+
}
|
128
|
+
|
129
|
+
).get();
|
98
130
|
|
99
131
|
</script>
|
100
132
|
|
2
修正
test
CHANGED
@@ -23,6 +23,10 @@
|
|
23
23
|
```
|
24
24
|
|
25
25
|
また、city[]というのがどこにもないので、name[]としますと以下のように書くことができます。
|
26
|
+
|
27
|
+
質問者さんのコードに間違っているところがあったので修正も行いました。修正した箇所にはコメントを入れました。
|
28
|
+
|
29
|
+
あらかじめnamesという配列を用意しておき、チェックボックスがすべてチェックされたときのみにチェックボックスの値をnamesに代入して、それをpostしています。
|
26
30
|
|
27
31
|
```HTML
|
28
32
|
|
@@ -72,9 +76,9 @@
|
|
72
76
|
|
73
77
|
});
|
74
78
|
|
75
|
-
$.post('
|
79
|
+
$.post('test.php', {
|
76
80
|
|
77
|
-
'city[]': names
|
81
|
+
'city[]': names//ここのcity[]はシングルクォートもしくはダブルクォートで囲まないといけません。
|
78
82
|
|
79
83
|
}, function (rs) {
|
80
84
|
|
1
修正
test
CHANGED
@@ -4,17 +4,15 @@
|
|
4
4
|
|
5
5
|
<?php
|
6
6
|
|
7
|
-
if (isset($_POST['
|
7
|
+
if (isset($_POST['city'])) {
|
8
8
|
|
9
|
-
f
|
9
|
+
if (is_array($_POST['city'])) {
|
10
10
|
|
11
|
-
$
|
11
|
+
$name = implode(":", $_POST["city"]);
|
12
|
-
|
13
|
-
echo $str;
|
14
12
|
|
15
13
|
$fp = fopen('test.txt', 'a');
|
16
14
|
|
17
|
-
fwrite($fp, $
|
15
|
+
fwrite($fp, $name);
|
18
16
|
|
19
17
|
fclose($fp);
|
20
18
|
|
@@ -74,9 +72,9 @@
|
|
74
72
|
|
75
73
|
});
|
76
74
|
|
77
|
-
$.post('
|
75
|
+
$.post('q1.php', {
|
78
76
|
|
79
|
-
'
|
77
|
+
'city[]': names
|
80
78
|
|
81
79
|
}, function (rs) {
|
82
80
|
|
@@ -100,4 +98,6 @@
|
|
100
98
|
|
101
99
|
</html>
|
102
100
|
|
101
|
+
|
102
|
+
|
103
103
|
```
|