Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Gluchik 01.09.2009 16:47
Я упростил до минимума и этот файл и обработчик.########################################################################### @auto[] ########################################################################### @main[] <html> <head></head> <body> <script type="text/javascript" language="JavaScript" src="^file:find[JsHttpRequest.js]"></script> ^js[^file:find[_js_http_request_load.html]?static=abc] <form style="padding:2px" enctype="multipart/form-data"> Text: <input type="text" name="q" value="1251803214"> <input type="hidden" name="werty" value="-w-"> <input type="hidden" name="a" value="_ok_"> <i>Type "error" to show debug capabilities.</i><br> <input type="button" onclick="request('form', 'post', this.form, 'custom data!')" value="form"> <input type="image" src="../images/test_button.jpg" onclick="request('form', 'post', this.form, 'custom data!')" value="form"> </form> <div id="result" style="border:1px solid #000; padding:2px"> Result </div> <div id="debug" style="border:1px dashed red; padding:2px"> Debug </div> </body> </html> @js[sLoaderUri] <script> // Called on button press. function request(loader, method, data, data2) { // Create new JsHttpRequest object. var req = new JsHttpRequest(); // Code automatically called on load finishing. req.onreadystatechange = function() { if (req.readyState == 4) { if (req.responseJS) { // Write result to page element. document.getElementById('result').innerHTML = req.responseJS.a; } // Write debug information too. document.getElementById('debug').innerHTML = req.responseText; } } // Allow caching (to avoid different server queries for // identical input data). Caching is always disabled if // we are uploading a file. req.caching = false; // Prepare request object. req.loader = loader; req.open(method, '$sLoaderUri', true); // Send data (random JavaScript hash). var data = { q: data }; req.send(data); } </script> @postprocess[body] ^taint[as-is][$body]И его обработчик
@main[] ^use[^file:find[JSHttpRequest.p]{JSHttpRequest.p}] ^try{ # äåêîäèðóåì ïðèøåäøèå äàííûå. ðåçóëüòàò ïîëó÷àåì â âèäå õåøà $hRequest[^JSHttpRequest:decodeRequest[]] ^hRequest.werty.save[append;JSHttpRequest1.log] ^hRequest.a.save[append;JSHttpRequest1.log] $hParserVariable[ $.a[$hRequest.a] ] $sDebugMessage[$hRequest.werty] }{ $exception.handled(true) $sDebugMessage[error] } ^JSHttpRequest:printResponse[$sDebugMessage;$hParserVariable]В таком виде, обработчик получает данные формы и записывает их в файл в обоих случаях.