Передача данных из яваскрипт методом 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>


October 22nd, 2007 at 11:37 pm
Хитро, но в каком контексте может быть применимо?
October 23rd, 2007 at 12:32 am
На сколько я понимаю в результате будет перезагружена страница?
October 23rd, 2007 at 5:02 am
А как сделать так, что бы страница не перегружалась?
October 23rd, 2007 at 6:57 am
2Evgeny Sergeev: да, или…
2Michael de`OZ: если добавить на страницу iframe и немного переписать функцию, добавив в taget создаваемой формы id этого iframe’а, то action формы будет загружатся в ней. Такой себе архаичный ajax.
2Nikita: Например почти вся моя работа делается на хостинге dreamhost, там есть скрипт рассылки, подписать юзера на которую можно только отправив его постом. Но подписываю я его чаще всего на форме регистрации, где есть чекбокс: получать новости от нас. Т.е. сразу после подтверждения email создается страница с формой, которая сразу же отправляется. С скрипта подписки юзер редиректится на страницу “Спасибо за регистрацию”.
February 5th, 2008 at 1:34 pm
интерестно, но меня интересует, если на форме есть iframe - ссылающийся на независимую страничку, а там генерится какой - нить глобальный параметр и я хочу его получить при отправке данных с формы, как твоя функция будет себя вести?
February 5th, 2008 at 1:48 pm
andrew, прости, но я не понял, что ты имеешь ввиду.
February 11th, 2008 at 6:23 pm
Здравствуйте, честной народ!
Не встречалось ли вам что нибудь про оптимизацию постов на wordpress’е, какой нибудь хитрый скрипт, с проставлением ссылок кейвордов и .т.д?
February 14th, 2008 at 1:04 am
Чувак, по-конкретней надо. В любом случае не думаю, что есть что-то бесплатное и путевое.
February 14th, 2008 at 9:47 am
А что конкретней?Задаешь нужные кейворды, по ним-база ссылок, вводишь текст - а там дело техники!
P.S.я не сильно просто говорю?
February 14th, 2008 at 12:48 pm
По твоему описанию очень похоже вот это -
http://wordpress.org/extend/plugins/cross-linker/
но так как я не понял о чем ты, то и не знаю. Пошукай там по категориям - может найдешь чего интересного.
February 14th, 2008 at 2:08 pm
ок спасибо!
Будем искать