2013-07-26 4 views
16

Это мой код формы:HTML Форма Перенаправление После Отправить

<form enctype="multipart/form-data" name="upload-file" method="post" action="http://example.com/upload"> 
    <div class="formi"> 
     <input id="text-link-input" type="text" name="url" class="link_form" value="your link" onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;" /> 
     <input type="submit" value="OK" class="link_but" /> 
    </div> 
    <div class="upl" title="Upload"><img src="http://example.com/example.png" alt="" style="vertical-align:middle;"/>Upload 
     <input type="file" name="file" size="1" class="up" onchange = "document.getElementById('text-link-input').value = String(this.value).replace('C:\\fakepath\\','')"/> 
    </div> 
</form> 

Теперь я хочу, чтобы перенаправить податель на любой странице моего выбора после того, как данные формы были представлены, но действие находится на другом сайте где я не могу редактировать. Возможно ли перенаправить пользователя на любую страницу после отправки данных на этот сайт?

От какого-то гуглинга это то, что я нашел. Добавление этого в форму код:

onSubmit=window.location='http://google.com' 

Это не сработало. Может быть, я не реализовал его правильно? Это то, что я сделал:

<form enctype="multipart/form-data" name="upload-file" method="post" onSubmit=window.location='http://google.com' action="http://example.com/upload"> 

Другой человек говорит, добавив скрытое поле должно работать:

<input type="hidden" name="redirect" value="http://your.host/to/file.html"> 

Как я должен выполнять это мой код?

Предложения и помощь ждали ...

+0

Скрытое поле будет работать, если у вас есть контроль над формой, которая будет обрабатывать ваш скрипт, в вашем случае, если вы не имеете контроля, поэтому он не будет работать –

+0

форму первый удар будет действовать, и в действии вы пройдете http://example.com/upload и получите форму willl, чтобы перейти к этому URL-адресу –

+0

@Vickey Да, это идет к example.com/upload, но я хочу он должен отправить данные example.com/upload, а затем перейти на другую страницу. Однако я просто не могу редактировать example.com/upload, чтобы добавить перенаправление. Любым другим путем? – user2622661

ответ

33

Попробуйте Javascript (JQuery) код. Его запрос ajax к внешнему URL-адресу. Используйте функцию обратного вызова, чтобы стрелять любой код:

<script type="text/javascript"> 
$(function() { 
    $('form').submit(function(){ 
    $.post('http://example.com/upload', function() { 
     window.location = 'http://google.com'; 
    }); 
    return false; 
    }); 
}); 
</script> 
+2

Интересно, почему это получило downvoted? выглядит как правильный подход ко мне (предполагая, что OP готов использовать jQuery). Может понадобиться' return: false; 'в этом обработчике отправки, хотя ... –

+0

Это первое решение Я подумал об этом после прочтения этого вопроса, но потом увидел, что это уже ответили. +1 + – Harshad

+1

Если вы все еще хотите отправить значения формы, добавьте что-то вроде '$ ('# form_id'). Serialize()' в качестве второго параметра (после URL-адреса). – bsa

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