Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak stworzyć w formularzu dwa guziki submit?
mdco
post 19.07.2005, 10:24:19
Post #1





Grupa: Zarejestrowani
Postów: 324
Pomógł: 5
Dołączył: 14.12.2004

Ostrzeżenie: (0%)
-----


Jak stworzyć w formularzu dwa guziki submit aby wysyłały dane do różnych stron docelowych?


--------------------
zmoderowano - rozmiar
Go to the top of the page
+Quote Post
revyag
post 19.07.2005, 10:25:51
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Na jednym formularzu tego nie zrobisz. Musisz zrobić dwa formularze


--------------------
-------------

------
Go to the top of the page
+Quote Post
nospor
post 19.07.2005, 10:28:07
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A mi się udało:
  1. <form id="form" method="post">
  2. <input type="submit" value="1" onclick="document.getElementById('form').action='test1.php';" >
  3. <input type="submit" value="2" onclick="document.getElementById('form').action='test2.php';" >
  4. </form>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wassago
post 19.07.2005, 10:37:02
Post #4





Grupa: Przyjaciele php.pl
Postów: 701
Pomógł: 0
Dołączył: 26.06.2002
Skąd: Londyn

Ostrzeżenie: (0%)
-----


No tak, ale za pomocą samego xhtml'a tego nie zrobisz - a właśnie tu trafił ten topik.


--------------------
Go to the top of the page
+Quote Post
mdco
post 19.07.2005, 10:37:18
Post #5





Grupa: Zarejestrowani
Postów: 324
Pomógł: 5
Dołączył: 14.12.2004

Ostrzeżenie: (0%)
-----


DZIEKI. Podaj adres to prześle Ci słoik z miodem winksmiley.jpg (Widziałem, że nie ma rzeczy niemożliwych)


--------------------
zmoderowano - rozmiar
Go to the top of the page
+Quote Post
crash
post 19.07.2005, 10:38:16
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


No a zwykły button z funkcja submit() można traktować jako przycisk submit chyba...


--------------------
Go to the top of the page
+Quote Post
revyag
post 19.07.2005, 10:38:17
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


No faktycznie, nie myślałem za długo jak napisałem posta snitch.gif


--------------------
-------------

------
Go to the top of the page
+Quote Post
mdco
post 19.07.2005, 10:45:52
Post #8





Grupa: Zarejestrowani
Postów: 324
Pomógł: 5
Dołączył: 14.12.2004

Ostrzeżenie: (0%)
-----


Cytat(crashu @ 2005-07-19 09:38:16)
No a zwykły button z funkcja submit() można traktować jako przycisk submit chyba...

Tak tylko że funkcja submit() nie ma argumentu action, a mnie chodzi o przekierowanie formularza na dwie różne strony, tak jak napisał nospor.


--------------------
zmoderowano - rozmiar
Go to the top of the page
+Quote Post
crash
post 19.07.2005, 10:48:04
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


No to używasz tego co zaproponował nospor dodatkowo ustawiając te przycisku na button i dodając do akcji submit()...


--------------------
Go to the top of the page
+Quote Post
nospor
post 19.07.2005, 11:00:06
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ale panowie: poco używać button i na siłę wstawiać mu submit()? Od tego jest przycisk submit


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
crash
post 19.07.2005, 11:52:10
Post #11





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


nospor: kombinowaliśmy tak (a przynajmniej ja) bo myślałem, że standard XHTML nie pozwala na użycie więcej niż 1 przycisku submit w formularzu. Właśnie sprawdziłem - validator się o nic nie rzuca, więc chyba nic nie stoi na przeszkodzie żeby użyc paru submitów... EOT


--------------------
Go to the top of the page
+Quote Post
nospor
post 19.07.2005, 11:54:47
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Byloby wręcz dziwne gdyby nie pozwalał.PRzecież dwa lub więcej submitów może też się odnosić do jednego formulalrza. Każdy z nich może powodować inną akcję. A to jaki wciśnięto rozpoznawać można np. isset($_POST['nazwa submita'])


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
yaroo_s
post 23.03.2007, 12:15:46
Post #13





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 10.02.2005
Skąd: Goleniów (pod Szczecinem)

Ostrzeżenie: (0%)
-----


Ja troche podbije temat, mam problem podobny... mi chodzi o to że w jednym formularzu są są dwa przyciski submit, po naciśnięciu ma wykonać się jedna albo druga akcja.

wyglada to tak:
  1. <table class=tabela border="1" cellpadding="10" class="ogolna">
  2. <tr><td>Tekst</td></tr>
  3. <tr><td>
  4. <form action="index.php?page=monografia.php" method="post">
  5. <input type="submit" value="Podgląd pliku"></form></td></tr>
  6. <tr><td><form action="index.php?page=monografia.php" method="post">
  7. <input type="hidden" name="akcja" value="edytuj">
  8. <textarea name="opis" cols="80" rows="30">'.$tekst.'</textarea></td></tr>
  9. <tr><td><input type="submit" value="Zapisz nowy tekst"></td></tr>
  10. </form>
  11. </table>


Są dwa pola. po przeładowaniu strony wyświetlają sie takie akcje:

  1. <?php
  2. if(isset($_GET['akcja']))
  3. {
  4. switch($_GET['akcja'])
  5. {
  6. case 'edytuj' :
  7.  {
  8. $opis = pc($_POST['opis']);
  9. $zapytanie = "update rozne set ro_1='".$opis."' where ro_id='patron'";
  10. $wynik = mysql_query($zapytanie);
  11. if($wynik)
  12. komunikat('Nowa monografia została zapisana.');
  13. else
  14. komunikat_b('Nie udało się zapisać nowej monografii. Proszę spróbować raz jeszcze.');
  15.  
  16.  }
  17.  break;
  18.  
  19. case 'podglad' :
  20.  {
  21. $patron = wc($tekst_patron,1);
  22. echo '<table><tr><td>'.$patron.'</td></tr></table>';
  23.  
  24.  }
  25.  break;
  26. }
  27.  
  28. }
  29. ?>


Przepuszczam że należy włożyć coś jeszcze w formularzu, ale pola ukryte tego nie obsłużą.. ma ktoś jakiś pomysł..
Go to the top of the page
+Quote Post
nospor
post 23.03.2007, 12:28:02
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nadaj submitom rozne nazwy, dla jednego np: name="edit", a dla drugiego, name="preview"
a potem w kodzie php:
  1. <?php
  2. if (isset($_POST['edit'])){
  3. //tutaj edycja
  4. } elseif(isset($_POST['preview'])){
  5. //tutaj podglad
  6. }
  7. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Cienki1980
post 23.03.2007, 12:34:00
Post #15





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----


Albo nadasz każdemu SUBMITOWI nazwę czyli:
  1. <input type="submit" name="podglad" value="Podglad pliku">
  2. <input type="submit" name="zapisz" value="Zapisz">


i w php będziesz sprawdzał czy dany submit był kliknięty:
  1. <?php
  2. if(isset($_POST['podglad']))
  3.  //podglad pliku
  4. elseif(isset($_POST['zapisz']))
  5.  //zapis pliku
  6. ?>


Możesz też wykorzystać buttony i JS. Po zdarzeniu onClick na któryś z buttonów wywołujesz funkcję JS, która ustawia jakieś pole hidden określoną wartością i zatwierdza formę.
Coś w tym stylu:
  1. function zatwierdz(a)
  2. {
  3. document.getElementById('akcja').value=a;
  4. document.xx.submit();
  5. }
  6. <form name="xx">
  7. <input type="hidden" id="akcja" name="akcja" value="">
  8. <input type="button" value="zapisz" onClick="zatwierdz('zapisz');">
  9. <input type="button" value="podglad" onClick="zatwierdz('podglad');">
  10. </form>

w php odczytujesz w switch'u wartość $_POST['akcja'];


--------------------
404
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.06.2025 - 04:45