Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: $_POST - tablica wielowymiarowa. Jak ?
Forum PHP.pl > Forum > PHP
sawic
Witam.
Robię coś takiego:

- czytam z tabeli wiersze (powiedzmy 10 wierszy, 5 kolumn),
- wpisuje je do formularza i zezwalam na edycje wszystkiego, co było zczytane,
- i teraz chcę poleceniem UPDATE zapisać do tabeli wszystkie wiersze, ale nie wiem jak przesłac przez $_POST tablicę wielowymiarową.

Ja to widzę mniejwięcej tak:
  1. <?php
  2.  
  3. $pytanie= "select * from tabela ORDER BY id WHERE jakis_warunek";
  4. $result = mysql_query($pytanie)
  5.  
  6. echo "<FORM action=test.php METHOD=post>";
  7.  
  8. while ($line=mysql_fetch_array ($result)) {
  9. echo "<INPUT TYPE=text NAME=pole_1 VALUE=".$line['kolumna1']."> 
  10.  <INPUT TYPE=text NAME=pole_2 VALUE=".$line['kolumna2'].">
  11.  <INPUT TYPE=text NAME=pole_3 VALUE=".$line['kolumna3'].">
  12.  <INPUT TYPE=text NAME=pole_4 VALUE=".$line['kolumna4'].">
  13.  <INPUT TYPE=text NAME=pole_5 VALUE=".$line['kolumna5'].">";
  14. }
  15.  
  16. echo "<INPUT TYPE=submit VALUE=dodaj></FORM><br>\n";
  17.  
  18. ?>


Gdy próbuję dodawać indeksy dla nazw pól (np. NAME=pole_1[1]), to tworzą się tablice wewnątrz tablicy z nazwą jaką miało to pole tekstowe (hehe ale napisałem, w każdym razie jak dodaje indeksy to nie działa winksmiley.jpg ).

Czy ktoś mógłby mi powiedzieć w jaki sposób się do tego zabrać ?
A może ktoś ma inną koncepcję jak zezwolić na edycję 10-ciu wierszy z bazy jednocześnie ?

Pozdrawiam
aleksander
<input type="text" name="wiersz1[kolumna1]" value=".$line['kolumna2']." />

moze cos takiiego?
Radarek
  1. <?php
  2.  
  3. $pytanie= "select * from tabela ORDER BY id WHERE jakis_warunek";
  4. $result = mysql_query($pytanie)
  5.  
  6. echo "<FORM action=test.php METHOD=post>";
  7.  
  8. while ($line=mysql_fetch_array ($result)) {
  9. echo "<INPUT TYPE=text NAME=\"pole[]\" VALUE=".$line['kolumna1']."> 
  10.  <INPUT TYPE=text NAME=\"pole[]\" VALUE=".$line['kolumna2'].">
  11.  <INPUT TYPE=text NAME=\"pole[]\" VALUE=".$line['kolumna3'].">
  12.  <INPUT TYPE=text NAME=\"pole[]\" VALUE=".$line['kolumna4'].">
  13.  <INPUT TYPE=text NAME=\"pole[]\" VALUE=".$line['kolumna5'].">";
  14. }
  15.  
  16. echo "<INPUT TYPE=submit VALUE=dodaj></FORM><br>\n";
  17.  
  18. ?>


Dziala to na takiej samej zasadzie jak:

  1. <?php
  2.  
  3. $a = array();
  4. $a[] = "dsa";
  5. $a[] = "qwe";
  6. $a[] = "zxc";
  7. print_r($a);
  8.  
  9. ?>


A tak przy okazji pozwol (i nie obrazaj sie o to:) ), ze zwroce ci kilka uwag dotyczacych kodu html.

Dla tagow i ichaatrybutow uzywaj malych liter, chocby i z racji estetyki (kod nie wyglada wtedy jakby "krzyczal";) ), ale takze chocby i dlatego, ze w xhtmlu (ktory przeciez zastepuje juz dziadka html'a) do tagow i atrybutow uzywa sie wylacznie malych liter. Ujmuj atrybuty w podwojny cudzyslow (to samo co wyzej).
sawic
Ok.
Działa.
Ale musiałem użyć NAME=numer_wiersza[nazwa_pola]
Czyli odwrotnie niż wcześniej zakładałem.

Pozdrawiam
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.