質問編集履歴

3

方法変更

2017/08/23 08:16

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -117,3 +117,31 @@
117
117
 
118
118
 
119
119
  ```
120
+
121
+ クエリ文字列生成のJavaScriptを変更してみましたが、上手く動きませんでしたので、
122
+
123
+ HTML側で見た目だけのチェックボックスを作り、onoff判定はhiddenで渡そうとしましたが、
124
+
125
+ Uncaught TypeError: Cannot read property '0' of undefined
126
+
127
+ のエラーが出ました。素直にIF文でチェックされている行のみをRPG側に渡すほうがよろしいでしょうか。
128
+
129
+ ```lang-JavaScript
130
+
131
+ +"<input type='checkbox' id='chkflg' name='FFLG' checked='checked'>"//見た目だけのチェックボックス
132
+
133
+ //チェックされていない場合HS1_SKFLGにoffを
134
+
135
+ if(!document.forms.listForm.chkflg[i].checked){
136
+
137
+ document.listForm.HS1_SKFLG[i].value = "off";
138
+
139
+ }
140
+
141
+
142
+
143
+ +"<input type='hidden' name='HS1_SKFLG' /></td>"
144
+
145
+
146
+
147
+ ```

2

クエリ文字列生成追記しました

2017/08/23 08:16

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -33,3 +33,87 @@
33
33
  EDNIF
34
34
 
35
35
  ```
36
+
37
+
38
+
39
+ ```lang-JavaScript
40
+
41
+ this.buildForm = function(form, isEncoding) {
42
+
43
+ if (!isEncoding) { isEncoding = true; }
44
+
45
+
46
+
47
+ for (var i = 0; i < form.elements.length; i++) {
48
+
49
+ var elem = form.elements[i];
50
+
51
+ if (elem.tagName == "INPUT") {
52
+
53
+ if (elem.type == "checkbox" && elem.checked && !elem.disabled) {
54
+
55
+ //this.queries[elem.name] = elem.value;
56
+
57
+ this.addParam(elem.name, elem.value);
58
+
59
+ } else if (elem.type == "radio" && elem.checked && !elem.disabled) {
60
+
61
+ //this.queries[elem.name] = elem.value;
62
+
63
+ this.addParam(elem.name, elem.value);
64
+
65
+ } else if (elem.type == "text" && !elem.disabled && !elem.readonly) {
66
+
67
+ //this.queries[elem.name] = elem.value;
68
+
69
+ this.addParam(elem.name, elem.value);
70
+
71
+ } else if (elem.type == "password" && !elem.disabled && !elem.readonly) {
72
+
73
+ //this.queries[elem.name] = elem.value;
74
+
75
+ this.addParam(elem.name, elem.value);
76
+
77
+ } else if (elem.type == "hidden" && !elem.disabled && !elem.readonly) {
78
+
79
+ //this.queries[elem.name] = elem.value;
80
+
81
+ this.addParam(elem.name, elem.value);
82
+
83
+ }
84
+
85
+ } else if (elem.tagName == "SELECT") {
86
+
87
+ for (var x = 0; x < elem.length; x++) {
88
+
89
+ var opt = elem[x];
90
+
91
+ if (opt.selected) {
92
+
93
+ //this.queries[elem.name] = opt.value;
94
+
95
+ this.addParam(elem.name, opt.value);
96
+
97
+ }
98
+
99
+ }
100
+
101
+ } else if (elem.tagName == "TEXTAREA") {
102
+
103
+ //this.queries[elem.name] = elem.value;
104
+
105
+ this.addParam(elem.name, elem.value);
106
+
107
+ }
108
+
109
+ }
110
+
111
+
112
+
113
+ return this.build(isEncoding);
114
+
115
+ }
116
+
117
+
118
+
119
+ ```

1

渡し方及び取得側一部追記

2017/08/23 05:59

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -15,3 +15,21 @@
15
15
  <input type='checkbox' name='FLG' checked='checked' />
16
16
 
17
17
  ```
18
+
19
+ 渡すプログラムとしてはフォーム要素からクエリ文字列を生成し、RPG側へと渡しています。
20
+
21
+ RPGの該当箇所だけ抜粋するとここで判断しているようです。
22
+
23
+ ```lang-rpg
24
+
25
+ EVAL G@SKFLG = #FV(FV:'FLG':W@I)
26
+
27
+
28
+
29
+ IF G@SKFLG = *BLANK
30
+
31
+ ITER
32
+
33
+ EDNIF
34
+
35
+ ```