Передача данных из яваскрипт методом 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
0)
{
var key = parms[i].substring(0,pos);
var val = parms[i].substring(pos+1);
/*@cc_on @if (@_jscript)
var newH = document.createElement("
");
@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
ок спасибо!
Будем искать