... |
... |
@@ -1,34 +1,80 @@ |
1 |
|
-{{html clean="false"}} |
2 |
|
- <style type="text/css"> |
3 |
|
- span.box{ |
4 |
|
- display: block; |
5 |
|
- padding: 20px; |
6 |
|
- } |
7 |
|
- </style> |
|
1 |
+== 1. Externen Kontext via iFrame einbinden z.B. == |
|
2 |
+ |
|
3 |
+[[https://pro.form.cloud/formcycle/external/forms/main.xhtml]] |
|
4 |
+ |
|
5 |
+TODO: iframe |
|
6 |
+ |
|
7 |
+== 2. Eventlistener für Formularauswahl registrieren z.B.: == |
|
8 |
+ |
|
9 |
+ |
|
10 |
+ |
|
11 |
+ |
|
12 |
+{{code language="javascript"}}function myFormCycleCallback(msg){ |
|
13 |
+ $('#result').html('Nachricht von: "<b>' + msg.origin + '</b>" Formular mit id: "<b>' + msg.data + '</b>" wurde ausgewählt.' ); |
|
14 |
+ renderForm(msg.data); |
|
15 |
+} |
|
16 |
+ |
|
17 |
+window.addEventListener("message", myFormCycleCallback, false);{{/code}} |
|
18 |
+ |
|
19 |
+ |
|
20 |
+== 3. Ergebenis speichern: == |
|
21 |
+ |
|
22 |
+{{html clean="false"}} |
|
23 |
+ <div class="hljs" id="result"></div> |
8 |
8 |
{{/html}} |
9 |
9 |
|
10 |
|
-Sie können das Formular direkt per AJAX ohne IFrames in Ihre Webseite einbinden. Unterstützung der möglichen Einbindungsoptionen finde Sie in FORMCYCLE direkt unter [[Veröffentlichen>>doc:Formcycle.UserInterface.MyForms.Publish.WebHome||target="_blank"]]. |
11 |
11 |
|
12 |
|
- {{code}} <!DOCTYPE html> |
13 |
|
- <html> |
14 |
|
- <head> |
15 |
|
- <meta charset="utf-8"> |
16 |
|
- <!-- jQuery must be loaded--> |
17 |
|
- <script src="https://demo7.formcycle.eu/formcycle/form/includes/010-jquery-min.js?_nc=1637667410192"></script> |
18 |
|
- <!-- configure path to your server, the id of the content element where the form should placed into and id of the form.--> |
19 |
|
- <script src="https://demo7.formcycle.eu/formcycle/form/include.js?auto=1&form_container_id=content&form_id=564&form_base=https://demo7.formcycle.eu/formcycle"></script> |
20 |
|
- </head> |
|
27 |
+== 4. Formular einbinden: == |
21 |
21 |
|
22 |
|
- <body class="body"> |
23 |
|
- <!-- this is the div where the form will be placed into --> |
24 |
|
- <div id="content"></div> |
25 |
|
- </body> |
26 |
|
- </html> |
27 |
|
- {{/code}} |
|
29 |
+{{code language="js"}} |
|
30 |
+window.renderForm = function(formId){ |
|
31 |
+ var myBase = 'https://help6.formcycle.eu/xwiki/bin/edit/Examples/IncludeFormViaExternalContext/'; |
|
32 |
+ var fcBase = 'https://pro.formcloud.de/formcycle'; |
|
33 |
+ var myFormContainer = $('#content'); |
|
34 |
+ |
|
35 |
+ var form = $.ajax({ |
|
36 |
+ type: "GET", |
|
37 |
+ url: fcBase + '/form/provide/' + formId, |
|
38 |
+ data:{ |
|
39 |
+ //Render-Parameter |
|
40 |
+ "xfc-rp-inline":true, //Verwendete resourcen auflösen |
|
41 |
+ "xfc-rp-form-only":true, //Formular ohne HTML, BODY etc. |
|
42 |
+ "xfc-rp-usejq":false, //jQuery einbinden |
|
43 |
+ "xfc-rp-keepalive":false, //Ping zur Sessionverlängerung |
|
44 |
+ "xfc-rp-usecss":true, //Use Formcycle CSS files |
|
45 |
+ "xfc-rp-useui":true, //jQueryUI einbinden |
|
46 |
+ //Prozess-Parameter |
|
47 |
+ "xfc-pp-external":true, //Externer Formularrequest |
|
48 |
+ "xfc-pp-base-url":fcBase, //URL zum FormCycle |
|
49 |
+ "xfc-pp-success-url": myBase + "/anfrage-versendet.html", //CMS Seite bei erfolg |
|
50 |
+ "xfc-pp-error-url": myBase + "/anfrage-fehler.html" //CMS Seite bei Fehler |
|
51 |
+ }, |
|
52 |
+ cache: false, |
|
53 |
+ async: false, |
|
54 |
+ success:function(html){ |
|
55 |
+ myFormContainer.html(html); |
|
56 |
+ }, |
|
57 |
+ crossDomain: true |
|
58 |
+ }); |
|
59 |
+} |
|
60 |
+{{/code}} |
28 |
28 |
|
29 |
|
-Die Einbindung erfolgt hier zur Demonstration in eine eigene HTML-Seite in einem iframe: |
30 |
30 |
|
|
63 |
+== 5. Ergebenis Formular: == |
|
64 |
+ |
31 |
31 |
{{html clean="false"}} |
|
66 |
+ <div class="hljs" id="content"></div> |
|
67 |
+{{/html}} |
|
68 |
+ |
|
69 |
+ |
|
70 |
+ |
|
71 |
+ |
|
72 |
+ |
|
73 |
+ |
|
74 |
+ |
|
75 |
+Für das folgenden Beispiel wird zu Demonstrationszwecken eine eigene [[HTML-Seite>>attach:iframe.html]] in einem iframe dargestellt: |
|
76 |
+ |
|
77 |
+{{html clean="false"}} |
32 |
32 |
<style type="text/css"> |
33 |
33 |
pre{ |
34 |
34 |
margin:0; |
... |
... |
@@ -53,12 +53,25 @@ |
53 |
53 |
text-align:center; |
54 |
54 |
} |
55 |
55 |
|
56 |
|
- span.box{ |
57 |
|
- display: block; |
58 |
|
- padding: 20px; |
|
102 |
+ .resizer { |
|
103 |
+ display:flex; |
|
104 |
+ margin:0; |
|
105 |
+ padding:0; |
|
106 |
+ resize:both; |
|
107 |
+ overflow:hidden |
59 |
59 |
} |
|
109 |
+ |
|
110 |
+ .resizer > .resized { |
|
111 |
+ flex-grow:1; |
|
112 |
+ margin:0; |
|
113 |
+ padding:0; |
|
114 |
+ border:0; |
|
115 |
+ height: inherit; |
|
116 |
+ } |
|
117 |
+ .border { border:4px dashed black; } |
60 |
60 |
</style> |
61 |
61 |
|
62 |
|
- |
63 |
|
- <iframe id="customerdemo" style="width:100%; height:1000px" src="https://help7.formcycle.eu/xwiki/bin/download/Examples/IncludeAJAX/iframe.html"></iframe> |
|
120 |
+ <div class="resizer border" style="height: 1000px;"> |
|
121 |
+ <iframe id="customerdemo" class="resized" src="https://help7.formcycle.eu/xwiki/bin/download/Examples/IncludeAJAX/iframe.html"></iframe> |
|
122 |
+ </div> |
64 |
64 |
{{/html}} |