2013-07-26 23 views
16

To jest mój kod forma:HTML Formularz Przekierowanie Po Prześlij

<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> 

Teraz chcę przekierować zgłaszającego do dowolnej strony mojego wyboru po dane formularz został złożony, ale działanie polega na innej stronie gdzie nie mogę edytować. Czy możliwe jest przekierowanie użytkownika na dowolną stronę po przesłaniu danych do tej witryny?

Z tego, co znalazłem, wynika, że ​​od jakiegoś Googlinga. Dodanie tego do kodu formularza:

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

To nie zadziałało. Może nie zaimplementowałem go poprawnie? To, co zrobiłem:

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

Inna osoba mówi, dodając ukryte pole powinno działać:

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

Jak należy zaimplementować to jest mój kod?

Sugestie i pomoc oczekiwany ...

+0

Ukryte pole będzie działać, gdy masz kontrolę nad formie, która będzie przetwarzać skrypt, w przypadku, gdy nie mają kontroli, więc nie będzie działać –

+0

formularz pierwsze trafienie przejdzie do działania, a w akcji przejdziemy przez http://example.com/upload i formularz pójdzie do tego, że idzie do tego adresu –

+0

@Vickey Tak, to idzie do example.com/upload, ale chcę przesłać dane do example.com/upload, a następnie przejść do innej strony. Jednak po prostu nie mogę edytować example.com/upload, aby dodać przekierowanie. W inny sposób? – user2622661

Odpowiedz

33

Spróbuj Javascript (jQuery) kod. Jest to żądanie ajax do zewnętrznego adresu URL. Użyj funkcji oddzwaniania na ogień kodu:

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

Zastanawiam się, dlaczego to zostało odrzucone? wygląda na to, że podejście do mnie jest prawidłowe (zakładając, że OP jest skłonny użyć jQuery) .Może potrzebować' return: false; 'w tym podlewie handler ... –

+0

To jest pierwsze rozwiązanie Pomyślałem o tym po przeczytaniu tego pytania, ale potem zobaczyłem, że jest już odpowiedział +1 – Harshad

+1

Jeśli nadal chcesz wysłać wartości formularza też dodaj coś jak '$ ('# id_formularza'). Serialize()' jako drugi parametr do opublikowania (po adresie URL) – bsa

Powiązane problemy