Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [różne] Przekierowanie / nowa strona - ciekawy problem?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
trejder
Witam,

Piszę "plugin", czyli kawałek kodu PHP, który odbiorca będzie mógł załączyć sobie na swojej stronie przy pomocy iframe. Musi to być tak rozwiązane, bo docelowa strona, na której plugin ma się pojawiać może być napisana w dowolnym języku - PHP, XHTML, ASP, ColdFusion, etc. - więc iframe wydaje mi się być jedynym rozwiązaniem.

Jednak problem w tym, że plugin, jak tu plugin ma zajmować niewiele miejsca (powiedzmy 400x200 px), aby załączyć go na stronie docelowej. I w momencie uruchomienia będzie w nim formularz do wpisania różnych danych. Lecz wyniki działania tego formularza muszą już koniecznie, bezwzględnie i absolutnie wyświetlać się na nowej, pełnej stronie. Albo otwartej w nowej zakładce (raczej nie nowym oknie, aby pop-up blockery nie zablokowały) albo na przykład przez nadpisanie adresu strony w której plugin był otwarty i wyświetlenie w tym samym oknie / zakładce, ale w pełnych wymiarach.

I prawdę mówiąc - utknąłem. Nie mam pojęcia w jakim języku (JavaScript, czy PHP) to zrobić i jak? Może Ajax / jQuery? Jeśli zrobię redirecta po stronie serwera (w PHP) to i tak cała zawartość zostanie wyświetlona w iframie, czego muszę uniknąć jak ognia. A jeśli miałby to realizować JavaScript na przykład w zdarzeniu OnClick klawisza wysyłającego formularz, to czy ktoś może mi doradzić jak to rozwiązać?

Czy to w ogóle da się rozwiązać?
erix
[JAVASCRIPT] pobierz, plaintext
  1. window.location
[JAVASCRIPT] pobierz, plaintext

?
trejder
Dzięki za elokwentną odpowiedź. Tyle, to ja wiem od lat. Powiedz mi tylko, jak zmusić formularz, by po kliknięciu "Wyślij" nie tylko wywoływał window.location z podanym adres (co, jak łatwo się domyślić powinno spowodować wyświetlenie wyników działania skryptu na pełnym ekranie), ale PRZEDE WSZYSTKIM przekazywał do tego adresu / skryptu wartości wpisane przez użytkownika do formularza. Bo w tym cała rzecz!

Doszedłem do czegoś takiego:

  1. <form method="get" onsubmit="document.location = 'cars-comparision.php?do=step_two&amp;param1=' + this.field1.value + '&amp;param2=' + this.field2.value">
  2. <input type="text" name="field1" />
  3. <input type="text" name="field2" />
  4. <input type="submit" value="OK" />
  5. </form>


I stanąłem w miejscu. Niezależnie od tego, co wpiszę w form action, czy w ogóle to usunę (jak w powyższym przykładzie) albo onsubmit nie jest uruchamiane albo gdzieś indziej jest błąd, bo w efekcie otrzymuje wyświetlenie jeszcze raz tej samej strony z iframem w którym jest formularz.
erix
To pisz konkretniej, a nie tak, że trzeba się połowy domyślać.

Cytat
albo na przykład przez nadpisanie adresu strony w której plugin był otwarty i wyświetlenie w tym samym oknie / zakładce, ale w pełnych wymiarach.

Najprościej byłoby dodać target="_parent".

Cytat
bo w efekcie otrzymuje wyświetlenie jeszcze raz tej samej strony z iframem w którym jest formularz.

window.location a document.location różnią się w sposób dość istotny.
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.