Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] pobieranie wartości i nazwy pola formularza
Forum PHP.pl > Forum > Przedszkole
natomiast
Witam,
Mam następujący formularz:
  1. <?php
  2. $q = mysql_query(&#092;"SELECT id, uczen_id, imie, nazwisko FROM uczniowie WHERE klasa='$klasa' ORDER BY 'nazwisko'\");
  3.  <form method="POST" action="nauczyciel/klasa.php">
  4.  echo'<table border="0">';  //dane pobrane z bazy wyświetlane sa za pomocą tablei
  5. while($row = mysql_fetch_assoc($q))
  6. {
  7. echo'<tr>';
  8. echo'<td width="25px">'; echo $i.'. '; echo'</td>';
  9. echo '<td><input type="checkbox" name="'.$i.'" /"></td>';
  10. echo '<td width="325px" ><b>'.$row["nazwisko"].' '. $row["imie"].'</b></td>';
  11. echo '<td><input type="text" name="'.$row["uczen_id"].'" style="width: 50px; right:100;"><BR /></td>';
  12. $i++;
  13. echo'</tr>';
  14. }
  15. echo'</table>';
  16. echo '<BR />';
  17.  <input type="submit" value="Dodaj oceny" name="dodaj_ocene" style="background-image: url(../obrazy/guzik.gif); font-weight:bold;" />
  18. </form>
  19. ?>

Problem polega na tym, że nie wiem w jaki sposób zapisać nazwe pola i wartość wpisaną w pole tekstowe:" name="'.$row["uczen_id"].'" " do bazy?
Próbowałem zapisać najpierw samą wartość wpisywaną w pole ale do bazy zamiast wartości z pola uczen_id zapisuje się puste pole (jedynki się wpisują).
  1. <?php
  2. mysql_query("INSERT INTO oceny VALUES('".$_POST["uczen_id"]."',1,1)");
  3. ?>
slaw.omir
Musisz przekazać zmienną z formularza

  1. <?php
  2. $klasa=$_POST['klasa'];
  3. ?>


pole formularza musi mieć nazwę klasa
  1. <input type="" name="klasa" />
sniezny_wilk
No dobra, ale gdzie jest kod formularza HTML'owego w którym wysyłasz dane ?

EDIT, teraz widać smile.gif. Problem w tym, że tworzysz nazwę pola dynamicznie, zmień linijkę z formularzem tam gdzie masz $row['uczen_id'] na

  1. <?php
  2. echo '<td><input type="text" name="uczen_id" style="width: 50px; right:100;"><BR /></td>';
  3. ?>


i już powinno działać winksmiley.jpg
natomiast
Przpraszam mam jakieś problemy z edycją postu po zatwierdzeniu zmian ko html znika :/
sniezny_wilk
Cytat(natomiast @ 5.06.2008, 07:18:19 ) *
Przpraszam mam jakieś problemy z edycją postu po zatwierdzeniu zmian ko html znika :/


Przed chwilką był.. zerknij co napisałem powyżej. BTW: tabelki nie służą do tworzenia lay'u winksmiley.jpg
natomiast
Jeśli chodzi o tabelki takie rozwiązanie zasugerowano mi na tym forum i myślę, że jest ono dobre w tym przypadku i się sprawdza. Jeśli chodzi i dynamiczne tworzenie nazw pól to własnie chodzi o to zeby tak było.
sniezny_wilk
Okej, zatem zrób tak, zrób jednego inputa typu hidden:

  1. <?php
  2. echo '<input type="hidden" name="name" value="'.$row["uczen_id"].'">';
  3. ?>


pole z uczniem zostaw bez zmian. Jeśli będziesz chciał odwołać się do dynamicznego pola wpisz:

  1. <?php
  2. mysql_query("INSERT INTO oceny VALUES('".$_POST[$_POST['name']]."',1,1)");
  3. ?>


Takie rozwiązanie przychodzi mi do głowy, powinno być okej. Dlaczego musisz mieć dynamiczne nazwy ?

EDIT: co do tabelek to w sumie jeśli są to dane tabelaryczne, to czemu nie.
natomiast
Strona to dziennik ucznia
Screen:
http://areksmolarek.republika.pl/temp.jpg
kazdy uczen ma swój unikatowy identyfikator (uczen_id) chodzi po prostu o to zapisać do bazy zarówno nazwe pola (które jest tym unikatowym identyfikatorem) jak i ocene jaka została w nie wpisana. Wszystkie oceny wrzucane są do jednej tabeli tak więc musze je móc potem jakoś wyciągnąć dla poszczególnych uczniów biggrin.gif
sniezny_wilk
To zrób to tak jak napisałem powyżej, lub zastosuj wspomniane przeze mnie pola hidden i tam przechowuj wartości.
natomiast
Jednak klapa. Wpisywana jest tylko nazwa ostatniego pola, tak wiec można w ten sposób dodać ocene tylko ostatniej osbie na liście. sciana.gif
sniezny_wilk
Nie prawda, po nazwie pola w HTML dodajesz [] i tworzysz tablicę, dodaj 3 inputy dla testu z nazwą pola test[], następnie w PHP wywołaj to tak:

  1. <?php
  2. print_r($_POST['test']);
  3. ?>


i zobacz co wyjdzie.. rozumiesz ?
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.