質問編集履歴

4

コード修正

2016/08/09 13:57

投稿

cont
cont

スコア13

test CHANGED
File without changes
test CHANGED
@@ -154,31 +154,23 @@
154
154
 
155
155
  $(function(){
156
156
 
157
- var partdotFormHandlerURL = 'http://www2.re-estate.co.jp/l/199442/2016-07-08/6x3';
157
+ var FormHandlerURL = 'http://example.com/hoge/hoge';
158
158
 
159
- var form_for_pardot = document.getElementById("form-for-pardot");
159
+ var url = FormHandlerURL + '?' + $('#form').serialize();
160
160
 
161
- // console.log($(form_for_pardot.serialize()));
161
+ $('body').append('<div>'+Url+'</div>');
162
162
 
163
- var pardotUrl = partdotFormHandlerURL + '?' + $('#form-for-pardot').serialize();
163
+ $('body').append('<iframe id="form-handler" height="0" width="0" style="position:absolute; left:-100000px; top:-100000px" src="javascript:false;"></iframe>');
164
164
 
165
- $('body').append('<div>'+pardotUrl+'</div>');
166
165
 
167
- $('body').append('<iframe id="pardot-form-handler" height="0" width="0" style="position:absolute; left:-100000px; top:-100000px" src="javascript:false;"></iframe>');
168
-
169
-
170
-
171
- console.log(pardotUrl);
172
166
 
173
167
  $('.btn2').on('click', function(e){
174
168
 
175
- e.preventDefault();
169
+
176
170
 
177
- //$(this).submit();
171
+ var iframe = function(callback){
178
172
 
179
- var iframePardot = function(callback){
180
-
181
- $('#pardot-form-handler').attr('src', pardotUrl);
173
+ $('#form-handler').attr('src', Url);
182
174
 
183
175
  callback();
184
176
 
@@ -192,7 +184,7 @@
192
184
 
193
185
  };
194
186
 
195
- iframePardot(formPost);
187
+ iframe(formPost);
196
188
 
197
189
  });
198
190
 

3

実施内容を追記

2016/08/09 13:57

投稿

cont
cont

スコア13

test CHANGED
File without changes
test CHANGED
@@ -143,3 +143,61 @@
143
143
  ###試したこと
144
144
 
145
145
  console.log(url)を$('#form_checker').on('submit', function(e)の前にぶち込むと値が正常に返って来てます。
146
+
147
+
148
+
149
+ ###追記
150
+
151
+ スクリプトを下記の様に書き換えても同じ結果だった。
152
+
153
+ ```javascript
154
+
155
+ $(function(){
156
+
157
+ var partdotFormHandlerURL = 'http://www2.re-estate.co.jp/l/199442/2016-07-08/6x3';
158
+
159
+ var form_for_pardot = document.getElementById("form-for-pardot");
160
+
161
+ // console.log($(form_for_pardot.serialize()));
162
+
163
+ var pardotUrl = partdotFormHandlerURL + '?' + $('#form-for-pardot').serialize();
164
+
165
+ $('body').append('<div>'+pardotUrl+'</div>');
166
+
167
+ $('body').append('<iframe id="pardot-form-handler" height="0" width="0" style="position:absolute; left:-100000px; top:-100000px" src="javascript:false;"></iframe>');
168
+
169
+
170
+
171
+ console.log(pardotUrl);
172
+
173
+ $('.btn2').on('click', function(e){
174
+
175
+ e.preventDefault();
176
+
177
+ //$(this).submit();
178
+
179
+ var iframePardot = function(callback){
180
+
181
+ $('#pardot-form-handler').attr('src', pardotUrl);
182
+
183
+ callback();
184
+
185
+ };
186
+
187
+ var formPost = function(){
188
+
189
+ $('#form_checker').attr('action', 'mail.php');
190
+
191
+ $('#form_checker').submit();
192
+
193
+ };
194
+
195
+ iframePardot(formPost);
196
+
197
+ });
198
+
199
+ });
200
+
201
+ ```
202
+
203
+ btn2はformのsubmitボタン。また、上記と同時にform action=の部分を空白に書き換えた。

2

文意が不明瞭だった部分を改善しました。変数Urlの宣言の位置を前に持ってきましたが、事象はそのまま出てます。

2016/08/09 13:40

投稿

cont
cont

スコア13

test CHANGED
@@ -1 +1 @@
1
- FormをSubmitした時のPOST先を2つ設定したい
1
+ FormをSubmitした時の値の送信先を2つ設定したい
test CHANGED
@@ -4,15 +4,23 @@
4
4
 
5
5
  iframeでPOSTしようとしているのはPOST先の制限です。
6
6
 
7
- index.phpのフォームを入れてもらうとcheck.php(確認ページ)に遷移するので、そちらにjavascript入れて確認後の送信と同時にPOSTしたいです。
7
+ index.phpのフォームを入れてもらうとcheck.php(確認ページ)に遷移するので、そちらにjavascript入れて確認後の送信と同時にformの方のPOSTとiframeで外部ドメインに値の挿入をしたいです。
8
+
9
+ http://help.pardot.com/customer/ja/portal/articles/2125981-form-handlers-advanced-topics
10
+
11
+ を参考にiframeでの値の送信を考えてます。
8
12
 
9
13
 
10
14
 
11
15
  ###発生している問題・エラーメッセージ
12
16
 
13
- WindowsのFirefox(ver.48)でのみうまく動作してません。
17
+ WindowsのFirefox(ver.48)でのみフォームの送り先(example.com)に値が渡ってません。
14
18
 
19
+ form-checkerのPOSTの方は問題なく動作しています。iframe用のUrlの生成までは確認出来ています。
20
+
15
- Chrome、IEでは動作を確認済み。
21
+ Chrome、IEでは正常に値が渡ることを確認済みです
22
+
23
+
16
24
 
17
25
 
18
26
 
@@ -24,11 +32,11 @@
24
32
 
25
33
  var FormHandlerURL = 'http://example.com/hoge/hoge';
26
34
 
35
+ var url = FormHandlerURL + '?' + $('#form').serialize();
36
+
27
37
  $('body').append('<div>'+Url+'</div>');
28
38
 
29
39
  $('body').append('<iframe id="form-handler" height="0" width="0" style="position:absolute; left:-100000px; top:-100000px" src="javascript:false;"></iframe>');
30
-
31
- var url = FormHandlerURL + '?' + $('#form').serialize();
32
40
 
33
41
  $('#form_checker').on('submit', function(e){
34
42
 
@@ -96,6 +104,40 @@
96
104
 
97
105
  このPHPは名前と住所のデータが一緒になってしまっていたのを無理矢理分離する為のものです。
98
106
 
107
+ ```html
108
+
109
+ <form action="mail.php" method="post" id="form_checker">
110
+
111
+ <fieldset>
112
+
113
+ <legend>Contact details</legend>
114
+
115
+ <dl>
116
+
117
+ <?php Conf();?>
118
+
119
+ </dl>
120
+
121
+ <div class="btn2"><?php Button();?></div>
122
+
123
+ </fieldset>
124
+
125
+ <input type="hidden" name="page" value="<?php echo "$page"; ?>" />
126
+
127
+ </form>
128
+
129
+ <form id="form" style="display:none;">
130
+
131
+ <?php ConfDisp();?>
132
+
133
+ </form>
134
+
135
+ </div>
136
+
137
+ ```
138
+
139
+ Confの中身はConfDispで整形前のフォームの送信データです。既存のデータの流れを変更しない為にこの様な処理をしています。formの中身をserializeしてform-checkerのPOSTと同時にiframeで値を送りたいです。
140
+
99
141
 
100
142
 
101
143
  ###試したこと

1

example\.comに修正しました。

2016/08/09 02:20

投稿

cont
cont

スコア13

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  $(function(){
24
24
 
25
- var FormHandlerURL = 'http://hoge.com/hoge/hoge';
25
+ var FormHandlerURL = 'http://example.com/hoge/hoge';
26
26
 
27
27
  $('body').append('<div>'+Url+'</div>');
28
28