Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Przekierowanie po wysłaniu formularza zalerzne od wybranych opcji
Forum PHP.pl > Forum > Przedszkole
Hunterro
Chodzi o to ze wysylam sobie formularz i chce zeby przekierowywalo mnie do roznych opcji w zależności od wybranej wartosci jednego z selectow.

  1. <form id="box" method="post" action="index.php" onSubmit="selecturl();">
  2. <p>
  3. Kategoria:
  4. <select name="kategorie">
  5. <option value="0"></option>
  6. <option value="1">Hotele</option>
  7. <option value="2">Prestiżowe miejsca</option>
  8. <option value="3">Wszystkie kategorie</option>
  9. </p>
  10. <input type="image" src="layout/ogloszenie/gfx/szukaj-box.gif" alt="Szukaj" />
  11.  
  12. <!--
  13. function selecturl() {
  14. window.top.location.href = "costam.php";
  15. //-->
  16. }


Co dziwne odsyla mnie do adresu z funkcji js jesli jest ona wywolana w akcji onChange selecta a jesli w onSubmit tak jak jest to nie dziala i odsyla mnie do strony z action formularza.
Nie moze tak byc dlatego ze na stronie ktora bedzie po przeladowaniu musze miec dostepne dane z wyslanego formularza (tam jest wiecej pol niz wkleilem)

z gory dziekuje za wszelka pomoc.
phpion
Zablokuj wysyłkę formularza poprzez return false czyli zamiast:
  1. <form id="box" method="post" action="index.php" onSubmit="selecturl();">

daj:
  1. <form id="box" method="post" action="index.php" onSubmit="selecturl(); return false;">
Hunterro
Dobra teraz to wyglada mniej wiecej tak:

  1. <form id="box" method="post" action="" onSubmit="selecturl(); return false;">
  2. <p>
  3. Kategoria:
  4. <select name="kategorie">
  5. <option value="0"></option>
  6. <option value="1"'; if($_SESSION['zmienne_box']['kategorie']=='1') echo' selected'; echo'>Hotele</option>
  7. <option value="2"'; if($_SESSION['zmienne_box']['kategorie']=='2') echo' selected'; echo'>Prestiżowe miejsca</option>
  8. <option value="3"'; if($_SESSION['zmienne_box']['kategorie']=='3') echo' selected'; echo'>Wszystkie kategorie</option>
  9. </p>
  10. <p>
  11. Szukaj słów: <input type="text" name="tagi" value="">
  12. </p>
  13. <p class="szukaj-przycisk">
  14. <input type="image" src="layout/gfx/szukaj-box.gif" alt="Szukaj" />
  15. </p>
  16.  
  17. function selecturl() {
  18.  
  19. if( document.forms['box'].elements['kategorie'].value == 1 )
  20. window.top.location.href = "modul,hotele,4";
  21.  
  22. else if( document.forms['box'].elements['kategorie'].value == 2 )
  23. window.top.location.href = "modul,inne,6";
  24.  
  25. else if( document.forms['box'].elements['kategorie'].value == 3 )
  26. window.top.location.href = "modul,firmy,5";
  27.  
  28. document.forms['box'].submit();
  29.  
  30. }


I problem w tym, że jeśli jest w funkcji js document.forms[\'box\'].submit(); to nie ustawia sie adres strony taki jaki powinien byc tylko jest ten z action, a jeśli niema document.forms[\'box\'].submit(); to po przeladowaniu strony nie sa dostepne dane z formularza :/

Wiec moje pytanie:
Jak zrobic, zeby strona ladowana po wyslaniu formularza byla zalerzna od wybranej opcji w formularzu i jednoczesnie byly po przeladowaniu strony dostepne dane z wyslanego formularza?
erix
Spytam inaczej - co Ty właściwie chcesz osiągnąć? Wyłączy delikwent JS i Twój skrypt LEŻY.

Cytat
Jak zrobic, zeby strona ladowana po wyslaniu formularza byla zalerzna od wybranej opcji w formularzu i jednoczesnie byly po przeladowaniu strony dostepne dane z wyslanego formularza?

Zrób sobie w skrypcie obrabiającym formularz warunek na $_POST['kategorie'] i przekierowuj przez header" title="Zobacz w manualu PHP" target="_manual. A dane z formularza wrzucaj do sesji.

IMHO najlepiej byłoby przepisać logikę po stronie serwera, bo za bardzo kombinujesz. winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.