Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Formularz w pętli
Forum PHP.pl > Forum > Przedszkole
Tang0
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ę.
matino
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).
Tang0
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?
matino
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ąć.
Tang0
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:

matino
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'].
Tang0
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.
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.