回答編集履歴

2

調整

2017/01/30 13:48

投稿

yambejp
yambejp

スコア114583

test CHANGED
@@ -81,3 +81,77 @@
81
81
 
82
82
 
83
83
  ```
84
+
85
+
86
+
87
+ # ajax版
88
+
89
+ 補足を見る限り以下のように、taishoのチェックされたvalだけ拾ってpostでcheck用phpに流し
90
+
91
+ そこでSQLでcount(*)を取ればよいかなと
92
+
93
+
94
+
95
+ ```javascript
96
+
97
+ <script>
98
+
99
+ $(function(){
100
+
101
+ $('input[type=button][value=check]').on('click',function(){
102
+
103
+ var x=[];
104
+
105
+ $('[type=checkbox][name="taisho[]"]:checked').each(function(){
106
+
107
+ x.push($(this).val());
108
+
109
+ });
110
+
111
+ $.ajax({
112
+
113
+ url:"check.php",
114
+
115
+ type:"post",
116
+
117
+ data:{taisho:x},
118
+
119
+ dataType:"text",
120
+
121
+ success:function(data){
122
+
123
+ console.log(data);
124
+
125
+ },
126
+
127
+ error:function(data,txt){
128
+
129
+ console.log(txt);
130
+
131
+ },
132
+
133
+ });
134
+
135
+ });
136
+
137
+ });
138
+
139
+ </script>
140
+
141
+ <form>
142
+
143
+ <input type="checkbox" name="taisho[]" value="10">FP1<br>
144
+
145
+ <input type="checkbox" name="taisho[]" value="12">FP1<br>
146
+
147
+ <input type="checkbox" name="taisho[]" value="15">FP2<br>
148
+
149
+ <input type="checkbox" name="taisho[]" value="18">FP1<br>
150
+
151
+ <input type="button" value="check">
152
+
153
+ </form>
154
+
155
+
156
+
157
+ ```

1

追記

2017/01/30 13:48

投稿

yambejp
yambejp

スコア114583

test CHANGED
@@ -5,3 +5,79 @@
5
5
  (nameやidで処理?)
6
6
 
7
7
  そのあたりがわかるソースを追記されたほうがよろしいかと
8
+
9
+
10
+
11
+ #追記
12
+
13
+ 対象と資格の間に紐付けがないと言っていますが、相関関係をはっきりさせておかないと
14
+
15
+ データ更新できないと思いますが・・・
16
+
17
+ taishoやsikakuには連番をふって、taishoのvalueにレコードのidを入れると
18
+
19
+ SQL側に処理させやすいと思います。
20
+
21
+
22
+
23
+ なお、今回のケースについてajaxが適当かどうかはもう少し詳しく状況をきいてみないとわかりません
24
+
25
+
26
+
27
+ ```javascript
28
+
29
+ <script>
30
+
31
+ $(function(){
32
+
33
+ $('input[type=button][value=check]').on('click',function(){
34
+
35
+ var x=[];
36
+
37
+ var y=[];
38
+
39
+ $('[type=checkbox]:checked').filter(function(i,j){if(r=j.name.match(/taisho\[(\d+)\]/)) x.push(r[1]);});
40
+
41
+ for(var i=0;i<x.length;i++){
42
+
43
+ y.push($('[type=text][name="sikaku['+x[i]+']"').val());
44
+
45
+ }
46
+
47
+ var z=y.filter(function (x, i, self) {
48
+
49
+ return self.indexOf(x) === i;
50
+
51
+ });
52
+
53
+ console.log(z)
54
+
55
+ if(z.length==0){alert('一つもチェックされてない');}
56
+
57
+ if(z.length==1){alert('資格は1種類');}
58
+
59
+ if(z.length>1){alert('資格は複数');}
60
+
61
+ });
62
+
63
+ });
64
+
65
+ </script>
66
+
67
+ <form>
68
+
69
+ <input type="checkbox" name="taisho[0]" value="10"><input type="text" name="sikaku[0]" value="FP1"><br>
70
+
71
+ <input type="checkbox" name="taisho[1]" value="12"><input type="text" name="sikaku[1]" value="FP1"><br>
72
+
73
+ <input type="checkbox" name="taisho[2]" value="15"><input type="text" name="sikaku[2]" value="FP2"><br>
74
+
75
+ <input type="checkbox" name="taisho[3]" value="18"><input type="text" name="sikaku[3]" value="FP1"><br>
76
+
77
+ <input type="button" value="check">
78
+
79
+ </form>
80
+
81
+
82
+
83
+ ```