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

質問編集履歴

4

コード修正

2016/08/09 13:57

投稿

cont
cont

スコア13

title CHANGED
File without changes
body CHANGED
@@ -76,26 +76,22 @@
76
76
  スクリプトを下記の様に書き換えても同じ結果だった。
77
77
  ```javascript
78
78
  $(function(){
79
- var partdotFormHandlerURL = 'http://www2.re-estate.co.jp/l/199442/2016-07-08/6x3';
79
+ var FormHandlerURL = 'http://example.com/hoge/hoge';
80
- var form_for_pardot = document.getElementById("form-for-pardot");
81
- // console.log($(form_for_pardot.serialize()));
82
- var pardotUrl = partdotFormHandlerURL + '?' + $('#form-for-pardot').serialize();
80
+ var url = FormHandlerURL + '?' + $('#form').serialize();
83
- $('body').append('<div>'+pardotUrl+'</div>');
81
+ $('body').append('<div>'+Url+'</div>');
84
- $('body').append('<iframe id="pardot-form-handler" height="0" width="0" style="position:absolute; left:-100000px; top:-100000px" src="javascript:false;"></iframe>');
82
+ $('body').append('<iframe id="form-handler" height="0" width="0" style="position:absolute; left:-100000px; top:-100000px" src="javascript:false;"></iframe>');
85
-
86
- console.log(pardotUrl);
83
+
87
84
  $('.btn2').on('click', function(e){
88
- e.preventDefault();
85
+
89
- //$(this).submit();
90
- var iframePardot = function(callback){
86
+ var iframe = function(callback){
91
- $('#pardot-form-handler').attr('src', pardotUrl);
87
+ $('#form-handler').attr('src', Url);
92
88
  callback();
93
89
  };
94
90
  var formPost = function(){
95
91
  $('#form_checker').attr('action', 'mail.php');
96
92
  $('#form_checker').submit();
97
93
  };
98
- iframePardot(formPost);
94
+ iframe(formPost);
99
95
  });
100
96
  });
101
97
  ```

3

実施内容を追記

2016/08/09 13:57

投稿

cont
cont

スコア13

title CHANGED
File without changes
body CHANGED
@@ -70,4 +70,33 @@
70
70
  Confの中身はConfDispで整形前のフォームの送信データです。既存のデータの流れを変更しない為にこの様な処理をしています。formの中身をserializeしてform-checkerのPOSTと同時にiframeで値を送りたいです。
71
71
 
72
72
  ###試したこと
73
- console.log(url)を$('#form_checker').on('submit', function(e)の前にぶち込むと値が正常に返って来てます。
73
+ console.log(url)を$('#form_checker').on('submit', function(e)の前にぶち込むと値が正常に返って来てます。
74
+
75
+ ###追記
76
+ スクリプトを下記の様に書き換えても同じ結果だった。
77
+ ```javascript
78
+ $(function(){
79
+ var partdotFormHandlerURL = 'http://www2.re-estate.co.jp/l/199442/2016-07-08/6x3';
80
+ var form_for_pardot = document.getElementById("form-for-pardot");
81
+ // console.log($(form_for_pardot.serialize()));
82
+ var pardotUrl = partdotFormHandlerURL + '?' + $('#form-for-pardot').serialize();
83
+ $('body').append('<div>'+pardotUrl+'</div>');
84
+ $('body').append('<iframe id="pardot-form-handler" height="0" width="0" style="position:absolute; left:-100000px; top:-100000px" src="javascript:false;"></iframe>');
85
+
86
+ console.log(pardotUrl);
87
+ $('.btn2').on('click', function(e){
88
+ e.preventDefault();
89
+ //$(this).submit();
90
+ var iframePardot = function(callback){
91
+ $('#pardot-form-handler').attr('src', pardotUrl);
92
+ callback();
93
+ };
94
+ var formPost = function(){
95
+ $('#form_checker').attr('action', 'mail.php');
96
+ $('#form_checker').submit();
97
+ };
98
+ iframePardot(formPost);
99
+ });
100
+ });
101
+ ```
102
+ btn2はformのsubmitボタン。また、上記と同時にform action=の部分を空白に書き換えた。

2

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

2016/08/09 13:40

投稿

cont
cont

スコア13

title CHANGED
@@ -1,1 +1,1 @@
1
- FormをSubmitした時のPOST先を2つ設定したい
1
+ FormをSubmitした時の値の送信先を2つ設定したい
body CHANGED
@@ -1,19 +1,23 @@
1
1
  ###前提・実現したいこと
2
2
  FormのPOST先を2つ設定したいので、0pxのiframeに内容をserializeしようとしてます。
3
3
  iframeでPOSTしようとしているのはPOST先の制限です。
4
- index.phpのフォームを入れてもらうとcheck.php(確認ページ)に遷移するので、そちらにjavascript入れて確認後の送信と同時にPOSTしたいです。
4
+ index.phpのフォームを入れてもらうとcheck.php(確認ページ)に遷移するので、そちらにjavascript入れて確認後の送信と同時にformの方のPOSTとiframeで外部ドメインに値の挿入をしたいです。
5
+ http://help.pardot.com/customer/ja/portal/articles/2125981-form-handlers-advanced-topics
6
+ を参考にiframeでの値の送信を考えてます。
5
7
 
6
8
  ###発生している問題・エラーメッセージ
7
- WindowsのFirefox(ver.48)でのみうまく動作してません。
9
+ WindowsのFirefox(ver.48)でのみフォームの送り先(example.com)に値が渡ってません。
10
+ form-checkerのPOSTの方は問題なく動作しています。iframe用のUrlの生成までは確認出来ています。
8
- Chrome、IEでは動作を確認済み。
11
+ Chrome、IEでは正常に値が渡ることを確認済みです
9
12
 
13
+
10
14
  ###該当のソースコード
11
15
  ```javascript
12
16
  $(function(){
13
17
  var FormHandlerURL = 'http://example.com/hoge/hoge';
18
+ var url = FormHandlerURL + '?' + $('#form').serialize();
14
19
  $('body').append('<div>'+Url+'</div>');
15
20
  $('body').append('<iframe id="form-handler" height="0" width="0" style="position:absolute; left:-100000px; top:-100000px" src="javascript:false;"></iframe>');
16
- var url = FormHandlerURL + '?' + $('#form').serialize();
17
21
  $('#form_checker').on('submit', function(e){
18
22
  $('#form-handler').attr('src',url);
19
23
  });
@@ -47,6 +51,23 @@
47
51
  }
48
52
  ```
49
53
  このPHPは名前と住所のデータが一緒になってしまっていたのを無理矢理分離する為のものです。
54
+ ```html
55
+ <form action="mail.php" method="post" id="form_checker">
56
+ <fieldset>
57
+ <legend>Contact details</legend>
58
+ <dl>
59
+ <?php Conf();?>
60
+ </dl>
61
+ <div class="btn2"><?php Button();?></div>
62
+ </fieldset>
63
+ <input type="hidden" name="page" value="<?php echo "$page"; ?>" />
64
+ </form>
65
+ <form id="form" style="display:none;">
66
+ <?php ConfDisp();?>
67
+ </form>
68
+ </div>
69
+ ```
70
+ Confの中身はConfDispで整形前のフォームの送信データです。既存のデータの流れを変更しない為にこの様な処理をしています。formの中身をserializeしてform-checkerのPOSTと同時にiframeで値を送りたいです。
50
71
 
51
72
  ###試したこと
52
73
  console.log(url)を$('#form_checker').on('submit', function(e)の前にぶち込むと値が正常に返って来てます。

1

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

2016/08/09 02:20

投稿

cont
cont

スコア13

title CHANGED
File without changes
body CHANGED
@@ -10,7 +10,7 @@
10
10
  ###該当のソースコード
11
11
  ```javascript
12
12
  $(function(){
13
- var FormHandlerURL = 'http://hoge.com/hoge/hoge';
13
+ var FormHandlerURL = 'http://example.com/hoge/hoge';
14
14
  $('body').append('<div>'+Url+'</div>');
15
15
  $('body').append('<iframe id="form-handler" height="0" width="0" style="position:absolute; left:-100000px; top:-100000px" src="javascript:false;"></iframe>');
16
16
  var url = FormHandlerURL + '?' + $('#form').serialize();