Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Da się zrobić dwa atrybuty action w jednym formularzu?
Tomasz2801
post 26.04.2021, 16:49:57
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.04.2021

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


Witam
Czy da się zrobić dwa atrybuty action i dwa przyciski submit w jednym formularzu? Chcę żeby dane z formularza przechodziły do różnych skryptów php w zależności który przycisk nacisnę
  1. <?php
  2. echo("<form action=wyswietl_zamowienie.php method=post />");
  3.  
  4. echo("<input type= submit value=Generuj_zamówienie>");
  5.  
  6. //echo("<form action=dodaj_do_zamowione.php method=post />");
  7.  
  8. //echo("<input type= submit value=Dodaj_zamówienie>");
  9.  
  10. $j=0;
  11. $i=0;
  12.  
  13. while ($row= mysql_fetch_row($wynik)) {
  14.  
  15. $i++;
  16. echo("<tr>");
  17.  
  18.  
  19. echo("<td>".$row['1']."</td>");
  20. echo("<td>".$row['2']."</td>");
  21. echo("<td>".$row['3']."</td>");
  22. echo("<td>".$row['4']."</td>");
  23. $y = $row['6'];
  24. $x = $row['5'];
  25. if ($x >= $y){
  26. echo("<td>".$row['5']."</td>");
  27. echo("<td> OK min : $y</td>");
  28.  
  29. }
  30. else{
  31. echo("<td bgcolor=red>".$row['5']."</td>");
  32. echo("<td> mało minimum : $y</td>");
  33. }
  34. echo("<td>".$row['7']."</td>");
  35. echo"<td align=center>".'<input type="text" name= "o_ile[]" value=0 size="5" />'."</td>";
  36.  
  37. echo"<input type=hidden name=tab[] value=".$tab[$j]=$row['0']." size=5/>";
  38. $j++;
  39. echo("</tr>");
  40.  
  41. }
  42.  
  43.  
  44. echo("</form>");
  45. mysql_close($mysql_id);
  46.  
  47.  
  48. ?>
Go to the top of the page
+Quote Post
nospor
post 26.04.2021, 17:02:26
Post #2





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Formularz moze miec tyko jedno action.
Ale w tym skrypcie z action jestes bezproblemu w stanie stwierdzic ktory guzik wcisnieto i dzieki temy wykonac to co ma byc wykonane


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

"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
Tomasz2801
post 26.04.2021, 17:26:40
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.04.2021

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


Ale nie można zrobić dwóch action w ten sposób co poniżej, gdyż obojętnie który przycisk wcisnę wykonuje skrypt wyswietl_zamowienie.php
Nie wiem jak to rozwiązać, w drugim formularzu mam podobny problem, po wpisaniu danych do formularza chciałbym aby w zależności od wciśniętego przycisku przeszedł do wybranego skryptu i dodał lub odjął z bazy podaną ilość.
  1. echo("<form action=wyswietl_zamowienie.php method=post />");
  2.  
  3. echo("<input type= submit value=Generuj_zamówienie>");
  4.  
  5. echo("<form action=dodaj_do_zamowione.php method=post />");
  6.  
  7. echo("<input type= submit value=Dodaj_zamówienie>");

Chyba z 10 lat nie robiłem żadnego projektu, a teraz w pracy potrzebujemy prostą bazę danych, zadeklarowałem się że ją zrobię, już z nią walczę ze dwa tygodnie, prawie mam już gotową ale z tym nie mogę sobie poradzić.
Go to the top of the page
+Quote Post
gino
post 26.04.2021, 18:57:39
Post #4





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

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


I w czym problem zrobić to tak, jak pisze nospor?
Wstaw dwa submit-y o różnych nazwach a w pliku do którego odwołuje się formularz zbadaj, który został wciśnięty i jaki kod ma się wykonać, np.:
Kod
if($_POST['add_table']) {
//dodaj rekord do bazy
}

if($_POST['sub_table']) {
  //odejmij rekordy czy co tam chcesz
}


Ten post edytował gino 26.04.2021, 18:58:26
Go to the top of the page
+Quote Post
trueblue
post 27.04.2021, 08:58:59
Post #5





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Możesz użyć atrybutu formaction.
https://kawalekkodu.pl/einstein-w-formie-cz...ormularz-na-dwa


--------------------
Go to the top of the page
+Quote Post
Tomasz2801
post 30.04.2021, 21:50:18
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.04.2021

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


Dziękuje bardzo! atrybut formaction załatwił sprawe yahoo.gif
Jeszcze jeden problem. Stworzyłem funkcje do łączenia z bazą w osobnym pliku
  1. <?php
  2.  
  3. // definicja funkcji łaczenia z bazą
  4. function laczeniezbaza()
  5. {
  6. $mysql_id = mysql_connect('localhost', 'root', '');
  7. mysql_select_db('kontur', $mysql_id);
  8.  
  9. }
  10.  
  11. ?>


dołączam ją w innym, łączy mnie z bazą wczytuje dane z bazy ale jest problem z zamknięciem połączenia,wywala błąd : Warning: mysql_close() expects parameter 1 to be resource, null given in C:\WebServ\httpd\kontur3.2\pokaz_tekture.php on line 75

  1. <?php
  2. include("laczeniezbaza.php");
  3. laczeniezbaza();
  4.  
  5. //$mysql_id = mysql_connect('localhost', 'root', '');
  6. //mysql_select_db('kontur', $mysql_id);
  7.  
  8.  
  9. $wynik = mysql_query("SELECT * FROM tektura WHERE id > 0 ORDER BY fala_kolor, dl");
  10.  
  11.  
  12. ?>
  13.  
  14.  
  15. <table border="1" width="85%">
  16. <tr >
  17.  
  18.  
  19. <th width="95">wymiary</th>
  20. <th width="95">klient</th>
  21. <th width="95">fala/kolor</th>
  22. <th width="95">ilość</th>
  23. <th width="95">stan minimalny</th>
  24. <th width="95">zamówione</th>
  25.  
  26. </tr>
  27.  
  28. <?php
  29.  
  30. laczeniezbaza();
  31. $j=0;
  32. $i=0;
  33.  
  34. while ($row= mysql_fetch_row($wynik)) {
  35.  
  36. $i++;
  37. echo("<tr>");
  38.  
  39.  
  40.  
  41. echo("<td>".$row['8']."</td>");
  42. echo("<td>".$row['3']."</td>");
  43. echo("<td>".$row['4']."</td>");
  44.  
  45. $y = $row['6'];
  46. $x = $row['5'];
  47. if ($x >= $y){
  48. echo("<td>".$row['5']."</td>");
  49. echo("<td> OK min : $y</td>");
  50.  
  51. }
  52. else{
  53. echo("<td bgcolor=red>".$row['5']."</td>");
  54. echo("<td> mało minimum : $y</td>");
  55. }
  56. echo("<td>".$row['7']."</td>");
  57.  
  58. $j++;
  59. echo("</tr>");
  60.  
  61. }
  62.  
  63.  
  64. echo("</form>");
  65. mysql_close($mysql_id);
  66.  
  67.  
  68. ?>
  69. <table />
  70.  
Go to the top of the page
+Quote Post
gino
post 1.05.2021, 08:57:39
Post #7





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

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


skąd niby plik pokaz_tekture.php ma wiedzieć o obiekcie $mysql_id, skoro ten został utworzony wewnątrz funkcji laczeniezbaza() i nie został przez tą funkcję zwrócony?
Poczytaj o zasięgu zmiennych w php.
Mysql został zdeprecjonowany w wersji php 5.5, a usunięty w 7.0. Użyj mysqli albo klasy PDO.
Go to the top of the page
+Quote Post
Tomasz2801
post 1.05.2021, 10:43:31
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.04.2021

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


Tylko ja się zatrzymałem na php 5, i tak też robię mój projekt, myślałem że tu też da się to jakoś rozwiązać nie zmieniając wszystkiego. Próbowałem zwrócić myslid dodając do funkcji :
  1. return $mysql_id;

ale nic to nie dało.

Ten post edytował Tomasz2801 1.05.2021, 10:46:41
Go to the top of the page
+Quote Post
dublinka
post 1.05.2021, 12:10:55
Post #9





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


https://stackoverflow.com/questions/6759515...base-connection


--------------------
Go to the top of the page
+Quote Post
viking
post 1.05.2021, 14:49:40
Post #10





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


  1. $mysql_id = laczeniezbaza();


--------------------
Go to the top of the page
+Quote Post
Tomasz2801
post 1.05.2021, 15:01:23
Post #11





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.04.2021

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


Cytat(viking @ 1.05.2021, 15:49:40 ) *
  1. $mysql_id = laczeniezbaza();

Dziękuję bardzo! kolejny raz mi pomogliście, niby proste a ja się z tym tyle męczyłem.
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: 26.04.2024 - 02:11