Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jeden form wiele wywołań
Forum PHP.pl > Forum > PHP
john_doe
Witam,

czy idzie coś takiego sprytnie ugryźć. Jest sobie plik index a w nim formularz z polami DATA OD i DATA DO

i teraz chciałbym zrobić np. 5 przycisków a pod kazdym z nich inne zapytanie SQL zależne od zakresu dat. Czyli tak jakby jeden formularz a kilka submitów do innych stron??

questionmark.gif

pozdrawiam
seth-kk
ukryty input ktorego wartosc zmieniasz miedzy wcisnieciem przycisku a wyslaniem?
askone
Hej

Albo "submity" jako img ze zdarzeniem onclick i kodem JavaScript pobierającym dane z pól formularza i w zależności od wartości odpalające w tle właściwy plik PHP z zapytaniem SQL

Pozdrawiam
Burned
A jeszcze lepiej zrobić if/switch w pliku obsługującym formularz i w zależności od dat wykonywać różne czynności. Wtedy wystarczy tylko jeden submit.
thelaguna
Jeden formularz to jeden submit, bo to w parametrze action formularza ustalamy adres na który chcemy wysłać dane.
Łatwiej byłoby coś doradzić gdybyśmy wiedzieli coś więcej na temat formularza.

Wyślij dane do skryptu php, który sam sprawdzi sobie ten zakres dat i zależnie od niego wywoła zapytanie.
Możesz też wybrać zapytanie przez wybór pola radio.
john_doe
data nie określa zapytania SQL. dla każdej daty może zostać wywołane zapytanie. Chciałbym po prostu mieć jeden form/ jeden raz wybierać datę i móc kliknąć w przyciski:

analiza1

lub

analiza2

lub

analiza3

każda w innym pliku bo to zupelnie inne zapytania.
Dumdas
<button onClick="document.forms[numer].action='analiza1'; document.forms[numer].submit();">Analiza 1</button>
...
<button onClick="document.forms[numer].action='analizaN'; document.forms[numer].submit();">Analiza N</button>

Wydaje mi się, że powinno działać, ale nie sprawdzałem.
thelaguna
Więc wystarczy Ci radio.
Zrób radio o nazwie analiza i wartościach np analiza1, analiza2, analiza3

a później w jednym pliku php:
  1. if($_POST['analiza']=='analiza1') { [zapytanie1];}
  2. elseif($_POST['analiza']=='analiza2') { [zapytanie2];}
  3. elseif($_POST['analiza']=='analiza3') { [zapytanie3];}

I będzie ok. Różne zapytania jak najbardziej mogą być w jednym pliku. Wykonane zostanie tylko to które zostanie zaznaczone w formularzu.
thek
Czyli radio albo tak jak chcesz... Kilka submitów z różnymi name smile.gif Potem w pliku wywoływanym przez action sprawdzasz, który submit wciśnięto. Jak? Submit wysyła po wciśnięciu od razu, a więc tak jak radio jest jednoznaczny. A każdy element formularza zostawia swój ślad w POST. Jeśli więc masz submity z name analiza1, analiza2, (...) , analizaN to nigdy w POST nie dostaniesz więcej niż jednego klikniętego. W pliku od action sprawdzisz tylko IFem występowanie
  1. if ( array_key_exists('analiza1', $_POST) ) { rób co chcesz; }
I tak dla innych, wydzielając część różną dla nich w każdym z IFów, a poza nimi zostawiając część wspólną.
  1. if ( array_key_exists('analiza1', $_POST) ) {
  2. rób co chcesz;
  3. } elseif ( array_key_exists('analiza2', $_POST) ) {
  4. rób co chcesz;
  5. } elseif ( array_key_exists('analiza3', $_POST) ) {
  6. rób co chcesz;
  7. } elseif ( array_key_exists('analiza4', $_POST) ) {
  8. rób co chcesz;
  9. } else {
  10. rób co chcesz;
  11. }
  12. A tu wspólne dla nich operacje;

Czy nie o coś takiego chodzi Ci?
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.