Wiki-Quellcode von Formular per AJAX einbinden
Verstecke letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
![]() |
5.1 | 1 | {{html clean="false"}} <script type="text/javascript" src="https://demo7.formcycle.eu/formcycle/form/includes/010-jquery-min.js?_nc=1637667410192" ></script> |
![]() |
7.1 | 2 | <script type="text/javascript" src="https://demo7.formcycle.eu/formcycle/form/include.js?form_id=564&form_base=https%3A%2F%2Fdemo7.formcycle.eu%2Fformcycle&auto=1&form_container_id=content" ></script> |
![]() |
1.1 | 3 | |
4 | <style type="text/css"> | ||
![]() |
6.1 | 5 | pre{ |
![]() |
1.1 | 6 | margin:0; |
![]() |
6.1 | 7 | } |
![]() |
1.1 | 8 | |
![]() |
6.1 | 9 | .xm-form{ |
10 | margin:0 auto; | ||
11 | } | ||
12 | |||
13 | .extra .hljs-string{ | ||
![]() |
1.1 | 14 | font-weight:bold; |
15 | color:red; | ||
![]() |
6.1 | 16 | } |
![]() |
1.1 | 17 | |
![]() |
6.1 | 18 | iframe, .hljs{ |
![]() |
1.1 | 19 | max-width:700px; |
20 | border:2px solid #515151; | ||
![]() |
6.1 | 21 | } |
![]() |
1.1 | 22 | |
![]() |
6.1 | 23 | .hljs{ |
![]() |
1.1 | 24 | max-width:985px; |
![]() |
6.1 | 25 | text-align:center; |
26 | } | ||
![]() |
1.1 | 27 | |
![]() |
6.1 | 28 | span.box{ |
29 | display: block; | ||
30 | padding: 20px; | ||
31 | } | ||
32 | </style> | ||
![]() |
1.1 | 33 | |
![]() |
6.1 | 34 | <script> |
![]() |
7.2 | 35 | console.log("before noConflict"); |
![]() |
1.1 | 36 | $.noConflict(); |
![]() |
7.2 | 37 | console.log("after noConflict"); |
![]() |
1.1 | 38 | |
![]() |
6.1 | 39 | window.xima.fc.form.load = (function(options, trigger){ |
40 | (function($, options, trigger){ | ||
41 | |||
42 | var options = options || {}, | ||
![]() |
1.1 | 43 | o = $.extend({ |
44 | loadingImageURL : window.xima.fc.form.loadingImageURL || "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAC4jAAAuIwF4pT92AAABymlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5wYWludC5uZXQgNC4wLjU8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CqgdUBYAAAKgSURBVCgVbVJbS1RRFP7WPufMGS/TKKJm2EXQAgctRBIywggCSYQCX3oSiyLEqJcIujAPQfUfCowepcKnKCotMCy8lJeHIhALxQujoc4457ZX6zhiEH0Pe5+9z1rr+/a3FvE4DoBwDgqm70fHrIbsm56eVntocnenJt4H5gyIGBqQGDkiAFO+XM0Qf0IJbAyjCtU8Yy1SlVdLcf59/HTnbJZilRy4MExbMgUkyTqAFclDZi01b1ITUvwFN/ATz6kY5ZjDdYm6o7kzxdqp9H1vIfDcCaKQVLgZnudk4sI8nqsoK39FP89ZzFOYX3hX24TyCwOn2ru57kTn252gZFKE/4XiEVhbR42HvAQfBaiIx5avoYjNdReImn+DkUyGL9+BiUb4okeJrI/BuNFL+d5FRfpQ8/7A+JXW2BtlG81dsfoCTyvXsOw8T/ueS1gtzpihBzwIQ8pplyvuRZdnzsqVtbKpPFOE+Iwjh009Ql4YAnY2LZFuRTjuXMqJer/VCOQ1zMzypFgmf1dccmIRsQhUYEaiB4VEIGeRqMiAl82U5JLbhDkpzGOxLsTX62mJhkttjmTJhGL/m+c690khkAI5etbKtHjI5AGY1AhPjC/ScG4iLEfkLDug0sKwMzw/8aH3yRbxP4uJllCLwMBVFeMapADXi75Y/Gy017aJL2tkJBIdkenphF/dmrLiS86W46OjewJTnhAIa42U6EZEihBeHbt78lHZUf+8r21oGY7p6T5pWh9+vITs22TykWu6kqmKoyxklVF9MPH6aTpRrO20q8ORCplyfiG5vcuNQAnrGeTjCnYBga+eUQ0GEy0dhesuFdiRqISQ/Pk/xE5sYgO3kcamr6P9gIPLdRve46nYrSC9WqWU+i6pOV+Q3N5zxf4AusodlJW0va8AAAAASUVORK5CYII=", | ||
45 | loadingImageStyle : window.xima.fc.form.loadingImageStyle || ".xm-form-loader-icon { text-align:center; -webkit-animation: spin 0.5s ease-in-out infinite; -moz-animation: spin 0.5s ease-in-out infinite; animation: spin 0.5s ease-in-out infinite;} @-moz-keyframes spin { 100% { -moz-transform: rotateY(360deg); } }@-webkit-keyframes spin { 100% { -webkit-transform: rotateY(360deg); } }@keyframes spin { 100% { -webkit-transform: rotateY(360deg); transform:rotateY(360deg); } }" | ||
46 | },options); | ||
![]() |
6.1 | 47 | |
![]() |
1.1 | 48 | var d = $.extend({ |
![]() |
6.1 | 49 | "xfc-rp-inline":true, |
50 | "xfc-rp-form-only":true, | ||
51 | "xfc-pp-external":true, | ||
52 | "xfc-rp-usejq":false, | ||
53 | "xfc-rp-keepalive":false, | ||
54 | "xfc-rp-usecss":true, | ||
55 | "xfc-rp-useui":true, | ||
![]() |
1.1 | 56 | "xfc-pp-base-url": o.form_base, |
57 | "fcpuid":window.xima.fc.form.fcpuid | ||
58 | }, {"auto":"1","form_id":"253","form_container_id":"content"}, o.data); | ||
![]() |
6.1 | 59 | |
![]() |
1.1 | 60 | function success(html){ |
61 | o.form_container.html(html.replace(/\$/g,'jQuery')); | ||
62 | checkIsLogin(); | ||
63 | } | ||
![]() |
6.1 | 64 | |
![]() |
1.1 | 65 | function error(data){ |
66 | o.form_container.html(data.responseText); | ||
67 | checkIsLogin(); | ||
68 | } | ||
![]() |
6.1 | 69 | |
![]() |
1.1 | 70 | function renderFromLoginForm(element){ |
![]() |
6.1 | 71 | |
![]() |
1.1 | 72 | var form = element.closest('form'); |
73 | pass = $('INPUT[name=pass]', form), | ||
74 | user = $('INPUT[name=user]', form); | ||
![]() |
6.1 | 75 | |
![]() |
1.1 | 76 | if (user.val() && pass.val()) { |
77 | render(user.val(), pass.val()); | ||
78 | } | ||
79 | } | ||
![]() |
6.1 | 80 | |
![]() |
1.1 | 81 | function checkIsLogin(){ |
82 | $('.xfc-template .login INPUT[type=submit]', o.form_container).click(function(){ | ||
83 | renderFromLoginForm($(this)); | ||
84 | return false; | ||
85 | }).addClass('xm-bound-login'); | ||
86 | } | ||
87 | |||
88 | function buildLoader(){ | ||
89 | o.form_container.html(''); | ||
![]() |
6.1 | 90 | |
![]() |
1.1 | 91 | var l = $('<div>').addClass('xm-form-loader-icon').appendTo(o.form_container); |
92 | $('<style>').text(o.loadingImageStyle).appendTo(l); | ||
93 | $('<img>').attr('src',o.loadingImageURL).appendTo(l); | ||
94 | } | ||
![]() |
6.1 | 95 | |
![]() |
1.1 | 96 | function render(user, pass){ |
97 | d = (user && pass) ? $.extend(d, { | ||
98 | "xfc-rp-username": user, | ||
99 | "xfc-rp-password": pass | ||
100 | }) : d; | ||
![]() |
6.1 | 101 | |
![]() |
1.1 | 102 | console.log(o.form_base + '/form/provide/' + o.form_id) |
![]() |
6.1 | 103 | |
![]() |
1.1 | 104 | $.ajax($.extend({ |
105 | type: "GET", | ||
106 | url: o.form_base + '/form/provide/' + o.form_id, | ||
107 | data: d, | ||
108 | cache: false, | ||
109 | async: false, | ||
110 | beforeSend:buildLoader, | ||
111 | success: success, | ||
112 | crossDomain: true | ||
113 | }, options.ajax )).fail(error); | ||
114 | } | ||
![]() |
6.1 | 115 | |
116 | o.form_id = o.form_id; | ||
![]() |
1.1 | 117 | o.form_container_id = (o.form_container_id) ? o.form_container_id : 'content'; |
![]() |
6.1 | 118 | o.form_container = (o.form_container_id) ? $('#'+o.form_container_id) : o.form_container; |
![]() |
1.1 | 119 | o.form_container = (o.form_container) ? o.form_container : $('.tx-xm-formcycle, .xfc-template-body').first(); |
120 | o.form_base = o.form_base; | ||
![]() |
6.1 | 121 | |
![]() |
1.1 | 122 | if (o.data && o.data.hasOwnProperty("xfc-pp-base-url")) o.form_base = o.data["xfc-pp-base-url"]; |
123 | if (o.form_action == 'login') $(renderFromLoginForm(trigger)); else $(render); | ||
124 | })(jQuery, options, trigger)}) | ||
125 | |||
126 | jQuery( document ).ready(function() { | ||
![]() |
6.1 | 127 | window.xima.fc.form.load({form_container_id:'content', form_base:'https://demo7.formcycle.eu/formcycle', form_id:'564'}); |
![]() |
1.1 | 128 | }); |
129 | |||
130 | |||
131 | |||
132 | </script> | ||
133 | <style type="text/css"> | ||
134 | span.box{ | ||
135 | display: block; | ||
136 | padding: 20px; | ||
137 | } | ||
138 | </style>{{/html}} | ||
139 | |||
140 | 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"]]. | ||
141 | |||
142 | {{code}} <!DOCTYPE html> | ||
143 | <html> | ||
144 | <head> | ||
145 | <meta charset="utf-8"> | ||
146 | <!-- jQuery must be loaded--> | ||
![]() |
4.1 | 147 | <script src="https://demo7.formcycle.eu/formcycle/form/includes/010-jquery-min.js?_nc=1637667410192"></script> |
![]() |
1.1 | 148 | <!-- configure path to your server, the id of the content element where the form should placed into and id of the form.--> |
![]() |
1.2 | 149 | <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> |
![]() |
1.1 | 150 | </head> |
151 | |||
152 | <body class="body"> | ||
153 | <!-- this is the div where the form will be placed into --> | ||
154 | <div id="content"></div> | ||
155 | </body> | ||
156 | </html> | ||
157 | {{/code}} | ||
158 | |||
159 | {{html clean="false"}} | ||
![]() |
7.1 | 160 | <div class="hljs" id="content"></div> |
![]() |
1.1 | 161 | {{/html}} |