teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

調整

2017/01/30 13:48

投稿

yambejp
yambejp

スコア117908

answer CHANGED
@@ -39,4 +39,41 @@
39
39
  <input type="button" value="check">
40
40
  </form>
41
41
 
42
+ ```
43
+
44
+ # ajax版
45
+ 補足を見る限り以下のように、taishoのチェックされたvalだけ拾ってpostでcheck用phpに流し
46
+ そこでSQLでcount(*)を取ればよいかなと
47
+
48
+ ```javascript
49
+ <script>
50
+ $(function(){
51
+ $('input[type=button][value=check]').on('click',function(){
52
+ var x=[];
53
+ $('[type=checkbox][name="taisho[]"]:checked').each(function(){
54
+ x.push($(this).val());
55
+ });
56
+ $.ajax({
57
+ url:"check.php",
58
+ type:"post",
59
+ data:{taisho:x},
60
+ dataType:"text",
61
+ success:function(data){
62
+ console.log(data);
63
+ },
64
+ error:function(data,txt){
65
+ console.log(txt);
66
+ },
67
+ });
68
+ });
69
+ });
70
+ </script>
71
+ <form>
72
+ <input type="checkbox" name="taisho[]" value="10">FP1<br>
73
+ <input type="checkbox" name="taisho[]" value="12">FP1<br>
74
+ <input type="checkbox" name="taisho[]" value="15">FP2<br>
75
+ <input type="checkbox" name="taisho[]" value="18">FP1<br>
76
+ <input type="button" value="check">
77
+ </form>
78
+
42
79
  ```

1

追記

2017/01/30 13:48

投稿

yambejp
yambejp

スコア117908

answer CHANGED
@@ -1,4 +1,42 @@
1
1
  対象にチェックを入れたとして、あとどの部分がユーザーの入力可能部分なのでしょうか?
2
2
  あと対象と資格を具体的にどのように紐付けていますか?
3
3
  (nameやidで処理?)
4
- そのあたりがわかるソースを追記されたほうがよろしいかと
4
+ そのあたりがわかるソースを追記されたほうがよろしいかと
5
+
6
+ #追記
7
+ 対象と資格の間に紐付けがないと言っていますが、相関関係をはっきりさせておかないと
8
+ データ更新できないと思いますが・・・
9
+ taishoやsikakuには連番をふって、taishoのvalueにレコードのidを入れると
10
+ SQL側に処理させやすいと思います。
11
+
12
+ なお、今回のケースについてajaxが適当かどうかはもう少し詳しく状況をきいてみないとわかりません
13
+
14
+ ```javascript
15
+ <script>
16
+ $(function(){
17
+ $('input[type=button][value=check]').on('click',function(){
18
+ var x=[];
19
+ var y=[];
20
+ $('[type=checkbox]:checked').filter(function(i,j){if(r=j.name.match(/taisho\[(\d+)\]/)) x.push(r[1]);});
21
+ for(var i=0;i<x.length;i++){
22
+ y.push($('[type=text][name="sikaku['+x[i]+']"').val());
23
+ }
24
+ var z=y.filter(function (x, i, self) {
25
+ return self.indexOf(x) === i;
26
+ });
27
+ console.log(z)
28
+ if(z.length==0){alert('一つもチェックされてない');}
29
+ if(z.length==1){alert('資格は1種類');}
30
+ if(z.length>1){alert('資格は複数');}
31
+ });
32
+ });
33
+ </script>
34
+ <form>
35
+ <input type="checkbox" name="taisho[0]" value="10"><input type="text" name="sikaku[0]" value="FP1"><br>
36
+ <input type="checkbox" name="taisho[1]" value="12"><input type="text" name="sikaku[1]" value="FP1"><br>
37
+ <input type="checkbox" name="taisho[2]" value="15"><input type="text" name="sikaku[2]" value="FP2"><br>
38
+ <input type="checkbox" name="taisho[3]" value="18"><input type="text" name="sikaku[3]" value="FP1"><br>
39
+ <input type="button" value="check">
40
+ </form>
41
+
42
+ ```