Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][JavaScript] Wysłanie dwóch formularzy jednocześnie
Forum PHP.pl > Forum > Przedszkole
Thompsoon
Witam,

Mam problem z wysłaniem dwóch formularzy, które umieszczone są na jednej stronie.
Strona wyświetla katalog produktów. Jeżeli najpierw wyświetle formularz filtowania, to gdy następnie chcę wynik posortować, to po kliknięciu "sortuj" to co najpierw wyfiltrowałem zeruje się i mam tylko samo sortowanie. I to ładnie działa.
Tylko, że ja chciałbym aby klikając na button "sortuj" wysyłał się też formularz z buttonem "filtruj" i w drugą stronę.
Znalałem kod js który sprawiałby że przy klikaniu na jeden z formularzy wysyłają się oba. Jednak to nie działa.
Zamieszczam kod i szkielet formularzy (dane w formularzach są zupełnie inne).

Oba formularze powodują wykonanie tej samej funkcji wyświetlającej listę produktów, tylko zmieniają się wtedy warunki w komendzie SQL - w przypadku filtorwania w WHERE, a w przypadku sortowania ORDER BY. Czy to właśnie to może powodować błędy?

Pierwszy raz robie coś takiego i nie wiem czy jest to w ogóle dobre podejście. Proszę o wskazówki.

  1. submitForms = function(){
  2. document.forms["catalogFilter"].submit();
  3. document.forms["catalogSort"].submit();
  4. }


  1. <form name='catalogSort' action='index.php?action=showCatalog' method='post'>
  2.  
  3. <select name='sort'>
  4. <option value='Cena'>rosnąco</option>
  5. <option value='Cena'>malejąco</option>
  6. </select>
  7.  
  8. <div>
  9. <input value='Sortuj' type='submit' onclick='submitForms()'/>
  10. </div>
  11. </form>
  12.  
  13. <form name='catalogFilter' action='index.php?action=showCatalog' method='post'>
  14.  
  15. <label><input type='checkbox' name='categories[]' value='1' /> Długopisy</label><br>
  16. <label><input type='checkbox' name='categories[]' value='2' /> Ołówki</label><br>
  17.  
  18. <div>
  19. <input value='Filtruj' type='submit' onclick='submitForms()'/>
  20. </div>
  21. </form>
  22.  
[sql][/sql]
nospor
Czemu nie wrzucisz obu rzeczy w jeden formularz?
Thompsoon
Myślałem nad tym ale to nie będzie najlepsze rozwiązanie.
Wówczas byłby jeden button "filtruj i sortuj".
Pole do filtrowania jest z lewej strony. Do sortowania na górze. Gdziekolwiek bym nie umieścił buttona było by to nieczytelnie.
nospor
1) Formularz moze obejmowac wiekszy obszar strony a nie tylko wybrany kawalek. Pamietaj o tym drobnym szczegole
2) Jesli nadal nie chcesz tego robic na jednym formie, to niestety ale do kazdego z forma musisz przekazac w polach hidden wartosci z drugiego forma. Wowczas wysylajac jeden form wysle sie on z wartoscią poprzedniego.
3) Jesli interesuje cie aktualny wybor z dwoch formularzy, to musisz niestety przy pomocy js przed wyslaniem forma aktualizowac pola ukryte z punktu 2
4) Nie da sie naraz wyslac dwoch formularzy wiec nawet tak nie kombinuj.
Thompsoon
Ok. Dzięki za wskazówki.

Jeżeli chodzi o pkt 4. Gdzieś w międzyczasie doczytałem, że można to zrobić wysyłając pierwszy formularz AJAXem. To prawda?
nospor
W Twoim przypadku nawet jak się uda, to nic ci to nie da. Porzuc ten chory pomysl i nie zaprzątaj nim sobie głowy smile.gif
Thompsoon
Dlatego że oba formularze odwołują się do tego samego skryptu? Czy z innego powodu?

Pytam już tylko teorytycznie. Zgodnie z radą pomysł porzucam smile.gif
nospor
Poniewaz takie rzeczy mogą się wykrzaczyc w dowolnym momemcie. form przeladowuje strone, ajax leci w trakcie dzialania strony. Tak wiec juz tutaj moze wszystko sie nie udac 89 razy.
A juz fakt ze probujesz wyslac forma i ajaxa do tego samego skryptu, gdzie to będą dwa zupelnie rozne żądania, nie ma szans na powodzenie
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.