Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] pobieranie wartości i nazwy pola formularza
natomiast
post 5.06.2008, 08:09:12
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 3.12.2007

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


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


Ten post edytował natomiast 5.06.2008, 08:19:50
Go to the top of the page
+Quote Post
slaw.omir
post 5.06.2008, 08:14:15
Post #2





Grupa: Zarejestrowani
Postów: 38
Pomógł: 1
Dołączył: 10.08.2006

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


Musisz przekazać zmienną z formularza

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


pole formularza musi mieć nazwę klasa
  1. <input type="" name="klasa" />


--------------------
--------------------------------------------------------------------------------------------------------------
https://www.web-development.com.pl - Tworzenie i pozycjonowanie stron internetowych
Go to the top of the page
+Quote Post
sniezny_wilk
post 5.06.2008, 08:15:14
Post #3





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


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

Ten post edytował sniezny_wilk 5.06.2008, 08:18:38


--------------------
Go to the top of the page
+Quote Post
natomiast
post 5.06.2008, 08:18:19
Post #4





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 3.12.2007

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


Przpraszam mam jakieś problemy z edycją postu po zatwierdzeniu zmian ko html znika :/
Go to the top of the page
+Quote Post
sniezny_wilk
post 5.06.2008, 08:19:31
Post #5





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


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


--------------------
Go to the top of the page
+Quote Post
natomiast
post 5.06.2008, 08:24:24
Post #6





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 3.12.2007

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


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.

Ten post edytował natomiast 5.06.2008, 08:26:19
Go to the top of the page
+Quote Post
sniezny_wilk
post 5.06.2008, 08:32:57
Post #7





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


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.

Ten post edytował sniezny_wilk 5.06.2008, 08:33:42


--------------------
Go to the top of the page
+Quote Post
natomiast
post 5.06.2008, 08:38:47
Post #8





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 3.12.2007

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


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
Go to the top of the page
+Quote Post
sniezny_wilk
post 5.06.2008, 08:45:04
Post #9





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


To zrób to tak jak napisałem powyżej, lub zastosuj wspomniane przeze mnie pola hidden i tam przechowuj wartości.


--------------------
Go to the top of the page
+Quote Post
natomiast
post 5.06.2008, 08:59:00
Post #10





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 3.12.2007

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


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

Ten post edytował natomiast 5.06.2008, 09:11:37
Go to the top of the page
+Quote Post
sniezny_wilk
post 5.06.2008, 13:00:40
Post #11





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


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 ?


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.07.2025 - 01:38