Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Jak pobrać tablicę z formularza do php POST'em
Forum PHP.pl > Forum > Przedszkole
cent4
Mam tablicę w formularzu jak ją przekazać poprzez POST?
adamec
Daj kawełek kodu jak wyglada ta tablica w formularzu
cent4
  1. for( $x = 0; $x < $elementy_tablicy; $x++ ) {
  2. //echo $s;
  3. //echo $s[$x];
  4. //echo "<BR>";
  5.  
  6. $SQL ='SELECT e.id, e.Nr_czyt, m.Tytul, m.Autor, e.Med, e.Kat, e.Nr_id, e.Nr_egz, m.Wydawnictwo, e.Data_wyp, e.Data_przed, e.Opis_wyp FROM egzempl AS e JOIN media AS m ON e.med=m.med AND e.kat=m.kat AND e.nr_id=m.nr_id WHERE e.id="'.$s[$x].'" AND Dostepny="Nie"';
  7. $result = mysql_query( $SQL ) or die("Could not execute query.".mysql_error());
  8. while($linia=mysql_fetch_array($result)){ /* Pętla dopóki istniej‘ dane */
  9. echo "<B><font color=\"lime\">Autor</font></B>: ".$linia['Autor'];
  10. $tablica_autor[$x]=$linia['Autor'];
  11. echo '<input type="hidden" name="$tablica_autor['.$x.']" value="'.$tablica_autor[$x].'" />';
  12. //echo '<input type="text" name="v" value="'.$tablica_autor[$x].'" />';
  13. echo "<BR>";
  14.  
  15. echo "<B><font color=\"lime\">Tytuł</font></B>: ".$linia['Tytul'];
  16. $tablica_tytul[$x]=$linia['Tytul'];
  17. echo '<input type="hidden" name="$tablica_tytul['.$x.']" value="'.$tablica_tytul[$x].'" />';
  18. echo "<BR>";
  19. echo "<B><font color=\"lime\">Sygnatura</font></B>: ".$linia['Med']."-".$linia['Kat']."-".$linia['Nr_id']."-".$linia['Nr_egz'];
  20. $tablica_med[$x]=$linia['Med'];
  21. echo '<input type="hidden" name="$tablica_med['.$x.']" value="'.$tablica_med[$x].'" />';
  22. $tablica_kat[$x]=$linia['Kat'];
  23. echo '<input type="hidden" name="$tablica_kat['.$x.']" value="'.$tablica_kat[$x].'" />';
  24. $tablica_nr_id[$x]=$linia['Nr_id'];
  25. echo '<input type="hidden" name="$tablica_nr_id['.$x.']" value="'.$tablica_nr_id[$x].'" />';
  26. $tablica_nr_egz[$x]=$linia['Nr_egz'];
  27. echo '<input type="hidden" name="$tablica_nr_egz['.$x.']" value="'.$tablica_nr_egz[$x].'" />';
  28. echo "<BR>";
  29.  
  30. echo "<B><font color=\"lime\">Wydawnictwo</font></B>: ".$linia['Wydawnictwo'];
  31. $tablica_wydawnictwo[$x]=$linia['Wydawnictwo'];
  32. echo '<input type="hidden" name="$tablica_wydawnictwo['.$x.']" value="'.$tablica_wydawnictwo[$x].'" />';
  33. echo "<BR>";
  34.  
  35. echo "<B><font color=\"lime\">Data wypożyczenia</font></B>: ".$linia['Data_wyp'];
  36. $tablica_data_wyp[$x]=$linia['Data_wyp'];
  37. echo '<input type="hidden" name="$tablica_data_wyp['.$x.']" value="'.$tablica_data_wyp[$x].'" />';
  38. echo "<BR>";
  39.  
  40. echo "<B><font color=\"lime\">Data przedłużenia</font></B>: ".$linia['Data_przed'];
  41. $tablica_data_przed[$x]=$linia['Data_przed'];
  42. echo '<input type="hidden" name="$tablica_data_przed['.$x.']" value="'.$tablica_data_przed[$x].'" />';
  43. echo "<BR>";
  44.  
  45. echo "<B><font color=\"lime\">Opis wypożyczenia</font></B>: ".$linia['Opis_wyp'];
  46. $tablica_opis_wyp[$x]=$linia['Opis_wyp'];
  47. echo '<input type="hidden" name="$tablica_opis_wyp['.$x.']" value="'.$tablica_opis_wyp[$x].'" />';
  48. echo "<BR>";
  49. echo "<BR>";
  50. }
  51.  
  52. }


Odbieranie danych, które nie działa:
  1. for( $x = 0; $x < $elementy_tablicy; $x++ ) {
  2.  
  3. //$_POST['kierowcy'][0];
  4. //$_POST['tablica_autor'][$x];
  5. $media=$_POST['tablica_med'][$x];
  6. $kategoria=$_POST['tablica_kat'][$x];
  7. $numer_id=$_POST['tablica_nr_id'][$x];
  8. $egzemplarz=$_POST['tablica_nr_egz'][$x];
  9.  
  10. $data_wyp=$_POST['tablica_data_wyp'][$x];
  11.  
  12. //mysql_query("UPDATE egzempl SET Dostepny='1' WHERE Med='$media' AND Kat='$kategoria' AND Nr_id='$numer_id' AND Nr_egz='$egzemplarz' LIMIT 1") or die("Błšd w zapytaniu!");
  13.  
  14. mysql_query("INSERT INTO historia VALUES ('', '$nr_czytelnika', '$id_ksiazek', '$kategoria', '$numer_id', '$egzemplarz', '$data_wyp', '$data_dzisiejsza')") or die("Błšd w zapytaniu!");
  15.  
  16. }
adamec
sprawdź jaką strukturę ma przekazany $_POST tym kawałkiem kodu
  1. echo '<pre>';
  2. print_r($_POST);
  3. echo '</pre>';


i wydaje mi się że jest jeszcze bład name
  1. echo '<input type="hidden" name="$tablica_data_przed['.$x.']" value="'.$tablica_data_przed[$x].'" />';


a powinno być

  1. echo '<input type="hidden" name='.$tablica_data_przed[$x].' value="'.$tablica_data_przed[$x].'" />';


ale tego nie sprawdzałem więc nie jestem peweien
cent4
Po wykonaniu formularza strona mi się odrazu przeładowuje i nie mogę podglądnąć efektu:
  1. echo '<pre>';
  2. print_r($_POST);
  3. echo '</pre>';
adamec
[quote name='cent4' date='18.04.2012, 15:35:31 ' post='957212']
Po wykonaniu formularza strona mi się odrazu przeładowuje i nie mogę podglądnąć efektu:
  1. echo '<pre>';
  2. print_r($_POST);
  3. echo '</pre>';

[/quote
to chwilowo dla próby przekieruj formularz ja jakąś nową stronę tylko z kodem powyżej
  1. <FORM action="test.php" method="post">


a test.php wygląda tylko tak:

  1. echo '<pre>';
  2. print_r($_POST);
  3. echo '</pre>';
cent4
To jest zwrot jaki dostaję:
  1. (
  2. [nr_czytelnika] => 2
  3. [imie] => Jan
  4. [nazwisko] => Kowalski
  5. [id_ksiazek] => Array
  6. [elementy_tablicy] => 2
  7. [$tablica_autor] => Array
  8. (
  9. [0] => Wieja A.
  10. [1] =>
  11. )
  12.  
  13. [$tablica_tytul] => Array
  14. (
  15. [0] => Siedem słupów mądrości
  16. [1] => Nowa Ty
  17. )
  18.  
  19. [$tablica_med] => Array
  20. (
  21. [0] => K
  22. [1] => K
  23. )
  24.  
  25. [$tablica_kat] => Array
  26. (
  27. [0] => A
  28. [1] => C
  29. )
  30.  
  31. [$tablica_nr_id] => Array
  32. (
  33. [0] => 143
  34. [1] => 111
  35. )
  36.  
  37. [$tablica_nr_egz] => Array
  38. (
  39. [0] => 1
  40. [1] => 1
  41. )
  42.  
  43. [$tablica_wydawnictwo] => Array
  44. (
  45. [0] => Koinonia
  46. [1] => Vocatio
  47. )
  48.  
  49. [$tablica_data_wyp] => Array
  50. (
  51. [0] => 2009-08-14
  52. [1] => 2010-02-19
  53. )
  54.  
  55. [$tablica_data_przed] => Array
  56. (
  57. [0] => 2010-06-08
  58. [1] => 2011-11-23
  59. )
  60.  
  61. [$tablica_opis_wyp] => Array
  62. (
  63. [0] => ccccccccc
  64. [1] => zzzzzzzzzzzzz
  65. )
  66.  
  67. [submit] => Oddaj
  68. )
  69.  


Czyli wszystko wygląda ok - tylko jak to teraz POST'em prawidłowo odczytać...
adamec
a wprowadziłes tą moja sugestję z nazami bo widze że używasz nazw z znakiem $ bo w tej chwili musisz się odwoływać $_POST[$tablica_autor][0]

zmień taki zapis:
  1. echo '<input type="hidden" name="$tablica_autor['.$x.']" value="'.$tablica_autor[$x].'" />';


na taki i powinno latać

  1. echo '<input type="hidden" name="tablica_autor['.$x.']" value="'.$tablica_autor[$x].'" />';


możesz jeszcze wstawić coś takiego:
  1. echo '<input type="hidden" name="tablica_autor['.$x.']" value="'.isset($_POST[tablica_autor[$x] ?$_POST[tablica_autor[$x]:$tablica_autor[$x].'" />';

powinno działac tak że jezeli już zmienił Autora i klik na Submit to przy walidacji nie zostanie znowu nadpisany autor z bazy tylko z POST
cent4
Wystarczyło poprawić na:
  1. echo '<input type="hidden" name="tablica_autor['.$x.']" value="'.$tablica_autor[$x].'" />';


Dzięki :-)
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.