Передача данных из яваскрипт методом POST
Бывает читаю javascript.about.com, а там случаются интересные записи.
Так вот.
Что мы делаем когда нужно послать из яваскипта юзера, передав данные post’ом?
Мы создаем форму:
<form method=post id=form_id>
<input type=hidden name=…>
</form>
Назначаем значения ее элементам:
document.getElementById(’form_id’)….value = …;
и, когда пользователь решится, вызываем:
document.getElementById(’form_id’).submit();
Можн, конечно, передавать данные через HttpRequest, если пользователя нужно оставить на странице. Но если его нужно послать подальше, причем через POST Стивен Чапмэн юзает свою функцию, которая автоматизирует создание формы для сабмита
// querystring to POST JavaScript // copyright 15th October 2007 by Stephen Chapman // permission to use this Javascript on your web page is granted // provided that all of the code in this script (including these // comments) is used without any alteration function toPost(getString) { var parms = getString.split('?'); var newF = document.createElement("form"); newF.action = parms[0]; newF.method = 'POST'; var parms = parms[1].split('&'); for (var i=0; i<parms.length; i++) { var pos = parms[i].indexOf('='); if (pos > 0) { var key = parms[i].substring(0,pos); var val = parms[i].substring(pos+1); /*@cc_on @if (@_jscript) var newH = document.createElement("<input name='"+key+"'>"); @else */ var newH = document.createElement("input"); newH.name = key; /* @end @*/ newH.type = 'hidden'; newH.value = val; newF.appendChild(newH); } } document.getElementsByTagName('body')[0].appendChild(newF); newF.submit(); }
С ней можно делать так:
<a href=”http://felgall.com/htmlt59.php?parmone=i&parmtwo=j” onclick=”toPost(this.href); return false;”>go</a>

