Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Formularz w pętli, ustawienie kolejności dla wierszy
Tang0
post 24.02.2011, 10:22:00
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.12.2010

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


Witam!

Napisałem kod, w którym wyświetlam informacje na temat auta z pozycjami do załadunku.
Potrzebuje uzyskać efekt, w którym po ustawieniu w input wartości odpowiadającej kolejności załadunku na aucie
poprzez naciśnięcie buttona zostanie ustawiona i ponownie wyświetlona jako już ustawiona poprawnie.
Dodatkowo potrzebuje aby w dwóch kolejnych inputach była możliwość ustawienia dla danego auta daty wyjazdu i nazwę spedycji.

  1. //szukam auta, które mają przyznany numer
  2. $sql = 'SELECT MAX(nr_auta) FROM zeszyt2011';
  3. $wynik = $db->query($sql);
  4. $zmienna = $wynik->fetch_row();
  5. $max = $zmienna[0];
  6.  
  7. echo '<form action="ustaw.php" name="UstawiaWysylki" method="get">';
  8.  
  9. for($i=1; $i<$max; $i++)
  10. {
  11. $zapytanie = 'SELECT * FROM zeszyt2011 WHERE nr_auta= "'.$i.'" ORDER BY kolejnosc ASC';
  12. $wynik = $db->query($zapytanie);
  13. $ile = $wynik->num_rows;
  14.  
  15. if ($ile != 0)
  16. {
  17. $metry_na_aucie=0;
  18. $wartosc_na_aucie=0;
  19. $pom1=0;
  20. $pom2=0;
  21.  
  22. for($j=0; $j<$ile; $j++)
  23. {
  24. $wiersz = $wynik->fetch_assoc();
  25. if($j == 0)
  26. {
  27. echo '<table border="1" style="font-size:10px;">';
  28. echo '<tr><td colspan="3" align="center">Nr auta '.$i.'</td>';
  29. echo '<td><input class="inputfr" type="submit" value="Ustaw" align="middle"/></td>';
  30. echo '<td colspan="4">DATA ';
  31. echo '<input class="inputfr" type="text" name="zm_Zaplanowane" value="'.$wiersz['zaplanowane'].'">';
  32. echo '<input class="inputfr" type="submit" value="Ustaw" align="middle"/></form></td>';
  33.  
  34. echo '<td colspan="3">SPEDYCJA';
  35. echo '<input class="inputfr" type="text" name="zm_Kierowca" value="'.$wiersz['kierowca'].'">';
  36. echo '<input class="inputfr" type="submit" value="Ustaw" align="middle"/></td>';
  37.  
  38. echo '</tr>';
  39. echo '<tr style="font-size:12px; font-style:italic" align="center">';
  40. ..nazwy kolumn...
  41. echo "</tr>";
  42. }
  43.  
  44. echo "<tr>";
  45. echo "<td><a href=\"edytuj.php?id=".$wiersz['lp']."\"><img src=\"gfx/pencil_go16.png\" alt=\"edytuj\"/></a></td>";
  46. echo "<td>".stripslashes($wiersz['nr_auta'])."</td>";
  47. ..itd...
  48. echo "</tr>";
  49. }
  50. echo '</table>';
  51. }
  52. }
  53. echo '</form>';


Jak widać auta które mają nadany numer wyświetlane są w pętli jako kolejne tabele. Ostatnio co kombinowałem to opatrzyłem wszystko w <form> i w każdej tabeli jest przycisk do zmiany kolejności. Problem w tym jak zrobić aby edytować tylko jedną tabele z pośród kilku wyświetlonych.

Za jakiekolwiek podpowiedzi z góry dziękuję.

Ten post edytował Tang0 24.02.2011, 10:34:49
Go to the top of the page
+Quote Post
matino
post 24.02.2011, 11:05:20
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 30
Dołączył: 9.08.2007

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


Nie wiem czy o to Ci chodzi, ale jeśli chcesz żeby submit działał tylko dla określonego bloku, to musisz ten blok ubrać w znaczniki <form>, </form>.
W tym przypadku spróbuj w pętli przed każdą tabelą dodać <form ...> (i oczywiście po zakończeniu tabeli dodać </form> smile.gif).
Go to the top of the page
+Quote Post
Tang0
post 24.02.2011, 11:18:28
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.12.2010

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


Już to przerabiałem z takim skutkiem że <input z danego bloku <form></form>
ma taką samą nazwę jak jak w kolejnym bloku i wtedy submit głupieje?
Go to the top of the page
+Quote Post
matino
post 24.02.2011, 11:26:14
Post #4





Grupa: Zarejestrowani
Postów: 175
Pomógł: 30
Dołączył: 9.08.2007

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


No to nadaj im różne name, np.
  1. <input type="submit" name="<?php echo 'submit' . $i; ?> ... />

Jeśli $i jest id samochodu w bazie, to możesz je w skrypcie obsługującym form łatwo wyciągnąć.
Go to the top of the page
+Quote Post
Tang0
post 24.02.2011, 12:15:25
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.12.2010

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


Teraz działa smile.gif
Tylko jak załatwić sprawę tej kolejności.
Skoro mam już wyświetlony zestaw tabel (jedna tabela jedno auto),
to jak z danej tabeli (z każdego wiersza) przekazać wartości do skryptu,
który je zapisze jako nowe?

Rysunek pomocniczy:



Ten post edytował Tang0 24.02.2011, 13:00:29
Go to the top of the page
+Quote Post
matino
post 24.02.2011, 15:52:29
Post #6





Grupa: Zarejestrowani
Postów: 175
Pomógł: 30
Dołączył: 9.08.2007

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


Do skryptu musisz przekazać id samochodu, którego dotyczy zmiana.
Można to zrobić na kilka sposobów, najszybciej chyba tak, że dodajesz w każdym <form> ukryte id:
  1. <input type="hidden" value="<?php echo $i; ?>" name="id_samochodu" />

Wtedy w skrypcie masz dostęp do zmiennej $_POST['id_samochodu'].

Ten post edytował matino 24.02.2011, 15:53:53
Go to the top of the page
+Quote Post
Tang0
post 24.02.2011, 16:03:12
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 15.12.2010

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


Wyjaśnie to na obrazkach smile.gif

Rys1. Tak wygląda tabela z bez ustawionej kolejności


Rys2. Następnie ustawiam sobie kolejność


Chcę aby po naciśnięciu buttona "kol" wprowadzone wartości przypisać do odpowiedniego "lp".
Wtedy po ponownym wyświetleniu auta odpowiednio skonstruowanym zapytaniem wyświetlę sobie pozycje w kolejności.

Ten post edytował Tang0 25.02.2011, 14:08:02
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: 14.08.2025 - 06:36