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
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
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> (IMG:style_emoticons/default/smile.gif) ).
Go to the top of the page
+Quote Post
Tang0
post
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
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
Post #5





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

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


Teraz działa (IMG:style_emoticons/default/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:
(IMG:http://efotosy.ef.funpic.de/img/d4bf5456f2a1c1cee05b16f29bc4cd30/s.JPG)


Ten post edytował Tang0 24.02.2011, 13:00:29
Go to the top of the page
+Quote Post
matino
post
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
Post #7





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

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


Wyjaśnie to na obrazkach (IMG:style_emoticons/default/smile.gif)

Rys1. Tak wygląda tabela z bez ustawionej kolejności
(IMG:http://s2.ifotos.pl/mini/1_hrhqqqs.JPG)

Rys2. Następnie ustawiam sobie kolejność
(IMG:http://s2.ifotos.pl/mini/2_hrrppra.JPG)

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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.09.2025 - 16:01