Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jeden form, kilka submitów
Forum PHP.pl > Forum > Przedszkole
-MarJan-
Czy da się w jednym formularzu zrobić kilka submitów prowadzących do różnych stron docelowych? Do tej pory robiłem tak, że po prostu wpisywałem jako form action miejsce docelowe do którego chciałem przekazać zmienne, ale natrafiłem teraz na sytuację, w której użytkownik powinien móc zadecydować czy chce dodać dane do bazy A czy do bazy B. Aby dokonać jednego i drugiego potrzebuję danych podawanych w tym formularzu. Jak zatem sprawić, aby kliknięcie jednego buttona odsyłało do bazaA.php, a drugiego do bazaB.php - przy czym za jednym i drugim razem wszystkie zmienne podane przez użytkownika w formularzu powinny być przekazane przez POST. Jak zrobić coś takiego?
b4rt3kk
Jeden formularz nie może odsyłać do dwóch innych podstron. Natomiast jeśli chcesz rozpoznać wciśnięcie submita i wtedy zadecydować co robić z wpisanymi to php daje taką możliwość. Przykładowy formularz z dwoma submitami:

  1. <form action="submit.php" method="POST">
  2. <input type="submit" name="submit1" value="costam1" />
  3. <input type="submit" name="submit2" value="costam2" />
  4. </form>


i teraz interpretacja przez php:

  1. if (isset($_POST['submit1'])) {
  2. // akcja gdy wcisnieto submit pierwszy
  3. }
  4.  
  5. if (isset($_POST['submit2'])) {
  6. // akcja gdy wcisnieto submit drugi
  7. }


To oczywiście tylko przykład, możesz nadać im takie same name i sprawdzać po value chociażby, który został wciśnięty.
-MarJan-
hm, rozumiem, ale wciąż jeden i drugi submit odeśle mnie do submit.php w przedstawionym przez Ciebie przypadku, tak? da się zrobić to jakoś żeby było inaczej?
vermis
Submit wysyła formularz a w formularzu akcja jest tylko jedna. Można to oczywiście zmienić za pomocą JS, ale bez obsługi JS nie zadziała, więc lepiej tego nie robić. Jeśli oba pliki docelowe są na tym samym serwerze to nie widzę problemu w rozwiązaniu, które podał @b4rt3kk.
Jeśli na różnych serwerach użyj cURL'a w podanym rozwiązaniu.
Greg0
Po przekierowaniu na submit.php możesz zrobić jeszcze jedno przekierowanie w zależności co kliknięto ale wtedy stracisz POSTa jeśli go jakoś nie przekażesz dalej.
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.