Von Version 9.2
bearbeitet von gru
am 05.10.2022, 13:36
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 11.8
bearbeitet von gru
am 02.03.2023, 09:15
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Titel
... ... @@ -1,1 +1,1 @@
1 -Formular per AJAX einbinden
1 +Formular über externen Kontext einbinden
Inhalt
... ... @@ -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}}
iframe.html
Größe
... ... @@ -1,1 +1,1 @@
1 -788 bytes
1 +893 bytes
Inhalt
... ... @@ -6,11 +6,16 @@
6 6   <script src="https://demo7.formcycle.eu/formcycle/form/includes/010-jquery-min.js?_nc=1637667410192"></script>
7 7   <!-- configure path to your server, the id of the content element where the form should placed into and id of the form.-->
8 8   <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>
9 + <style>
10 + h1.page, p.page {
11 + text-align: center;
12 + }
13 + </style>
9 9   </head>
10 10  
11 11   <body class="body">
12 - <h1>Beispielwebseite</h1>
13 - <p>Mit dem obenstehenden Code kann ein FORMCYCLE Formular per AJAX in die Website geladen werden.</p>
17 + <h1 class="page">Beispielwebseite</h1>
18 + <p class="page">Mit dem obenstehenden Code kann ein FORMCYCLE Formular per AJAX in die Website geladen werden.</p>
14 14   <!-- this is the div where the form will be placed into -->
15 15   <div id="content"></div>
16 16   </body>