Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
G_Z 24.07.2020 02:25 / 24.07.2020 06:25
@main[] ^if(^request:headers.AJAX.bool(false)){ ^ajax[] }{ ^form[] } @form[] $text[Ich weiß^; nicht, was soll es bedeuten Daβ^; ich so traurig bin^; Ein Mä^;rchen aus alten Zeiten, Das kommt mir nicht aus dem Sinn.] <form id="form" method="post" action=""> <textarea id="text" name="text" rows="4" cols="40">$text</textarea> </form> <h1>HTML native form</h1> <button form="form" type="submit">Send via HTML</button> ^if($request:method eq 'POST'){ <p>^form:text.replace[^taint[^#0A];<br/>]</p> } <h1>JS submit (form-urlencoded)</h1> <button id="js-button-urlencoded" type="button">Send via JS</button> <p id="response-urlencoded"></p> <script> (function(){ var button = document.querySelector('#js-button-urlencoded'); button.addEventListener('click', function(){ var form = document.querySelector('#form'), text = document.querySelector('#text').value, result = document.querySelector('#response-urlencoded'); var data = 'text=' + encodeURIComponent(text); fetch(window.location.href, { method: 'POST', headers: { 'ajax': true, 'content-type': 'application/x-www-form-urlencoded;charset=UTF-8' }, body: data }).then(function(response){ return response.text(); }).then(function(text){ result.innerText = text; }); }); })(); </script> <h1>JS submit (multipart/form-data)</h1> <button id="js-button-multipart" type="button">Send via JS</button> <p id="response-multipart"></p> <script> (function(){ var button = document.querySelector('#js-button-multipart'); button.addEventListener('click', function(){ var form = document.querySelector('#form'), result = document.querySelector('#response-multipart'); fetch(window.location.href, { method: 'POST', headers: { 'ajax': true }, body: new FormData(form) }).then(function(response){ return response.text(); }).then(function(text){ result.innerText = text; }); }); })(); </script> @ajax[] $form:textВсё прекрасно отправляется обоими методами, никакого специального декодирования не требуется.