2010-09-08 12 views

ответ

9

Это звучит как плохое решение проблемы, которая, вероятно, может быть лучше решена другим способом ...

Это, как говорится, вы можете создать форму и вызвать метод представить на нем достаточно легко:

$([ 
    '<form action="url.php" method="post">', 
     '<input type="hidden" name="param1" value="foo"/>', 
     '<input type="hidden" name="param1" value="foo"/>', 
    '</form>' 
].join('')).appendTo('body')[0].submit(); 

Если вам нужно, чтобы иметь возможность указать параметры и URL, то вы могли бы написать функцию, подобную этой:

function submitValues(url, params) { 
    var form = [ '<form method="POST" action="', url, '">' ]; 

    for(var key in params) 
     form.push('<input type="hidden" name="', key, '" value="', params[key], '"/>'); 

    form.push('</form>'); 

    jQuery(form.join('')).appendTo('body')[0].submit(); 
} 

и назвать это таким образом:

submitValues('url.php', { foo: 'bar', boo: 'far' }); 
+0

Hi Prestaul. Это была простая и отличная идея. Я использовал его для публикации значений в новом окне с использованием целевого пробела. Для этого я добавил аргумент, чтобы установить цель from, и ** remove() ** вызов после отправки (так что у меня не останется никаких остатков формы в моей разметке) – Mohoch

+0

@Mohoch, я рад это было полезно для вас, но я должен повторить, что я не могу придумать вескую причину для этого ... Если вам кажется, что вам нужна эта техника, вы, скорее всего, злоупотребляете методом POST (то есть вы должны использовать GET), или кто-то имеет разработал рабочий процесс, который будет таким же болезненным для пользователей, как и для разработчиков ... Мои 2 цента. – Prestaul

+0

Мы пытались перенаправить пользователя куда-нибудь и передать параметры, чтобы они не были видны пользователю. Мы думали, что сообщение очень простое, и это было так. Почему вы думаете, что это будет болезненно? – Mohoch

Смежные вопросы