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

Zusammenfassung

Details

Seiteneigenschaften
Titel
... ... @@ -1,1 +1,1 @@
1 -Formular über externen Kontext einbinden
1 +Formular per AJAX einbinden
Inhalt
... ... @@ -1,80 +1,34 @@
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>
1 +{{html clean="false"}}
2 + <style type="text/css">
3 + span.box{
4 + display: block;
5 + padding: 20px;
6 + }
7 + </style>
24 24  {{/html}}
25 25  
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"]].
26 26  
27 -== 4. Formular einbinden: ==
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>
28 28  
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}}
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}}
61 61  
29 +Die Einbindung erfolgt hier zur Demonstration in eine eigene HTML-Seite in einem iframe:
62 62  
63 -== 5. Ergebenis Formular: ==
64 -
65 65  {{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"}}
78 78   <style type="text/css">
79 79   pre{
80 80   margin:0;
... ... @@ -99,25 +99,12 @@
99 99   text-align:center;
100 100   }
101 101  
102 - .resizer {
103 - display:flex;
104 - margin:0;
105 - padding:0;
106 - resize:both;
107 - overflow:hidden
56 + span.box{
57 + display: block;
58 + padding: 20px;
108 108   }
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; }
118 118   </style>
119 119  
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>
62 +
63 + <iframe id="customerdemo" style="width:100%; height:900px" src="https://help7.formcycle.eu/xwiki/bin/download/Examples/IncludeAJAX/iframe.html"></iframe>
123 123  {{/html}}