Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: obsluga formularza ze zmienna iloscia pol
Forum PHP.pl > Forum > PHP
n1edw1ed
Witam smile.gif

Moze od razu przejde do mojego problemu... smile.gif


Formularz
  1. ...
  2. <center>
  3. <?
  4.  
  5. include ('./connect.php');
  6. $query = "SELECT nazwa FROM stat_users ORDER BY nazwa";
  7. $result = @mysql_query ($query);
  8. $nr = 0;
  9. $num = mysql_num_rows ($result); // Ilu jest uzytkownikow?
  10.  
  11. if ($result) { // Jezeli zapytanie zosta-o wykonane poprawnie, pokaz rekordy.
  12.  
  13. echo '<form name="form5" method="post" action="./skrypty/add.php">
  14. <table border=1>
  15. <tr>
  16. <td ALIGN=center><b>Nr</b> </td>
  17. <td ALIGN=center><b>Nazwa usera</b></td>
  18. <td ALIGN=center ><b>opis</b></td>
  19. </tr>';
  20.  
  21. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  22. $nr++;
  23. $nazwa = "nazwa";
  24. $nazwa .= $nr;
  25. $ilosc = "opis";
  26. $ilosc .= $nr;
  27. echo '<tr>
  28. <td align="center">'. $nr .'</td>
  29. <td align="center">'. $row[0] .'</td>
  30. <td>
  31. <input type="hidden" name="'. $nazwa .'" value = "' . $row[0] . '"> 
  32. //przy kazdym przejsciu petli nazwa pola bedzie nazwa1, nazwa2, ... (zalezy od ilosci uzytkownikow)
  33. <input type="text" name="'. $opis .'" size="20"> 
  34. //przy kazdym przejsciu petli nazwa pola bedzie opis1, opis2, ... (zalezy od ilosci uzytkownikow)
  35. </td>
  36. </tr>';
  37. }
  38.  
  39. echo '</table>
  40.  
  41. <br>
  42. <input type="hidden" name="ilosc_do_wpr" value = "' . $num . '"> // ilosc wszystkich uzytkownikow
  43. <input type="submit" name="wpr" value="wprowadz usera">
  44. </form>';
  45.  
  46. }
  47. ?>
  48.  
  49. </center>
  50. ...

czyli nazwa pola w formularzu jest zalezna od ilosci uzytkownikow

$num - to ilosc userow, czyli ilosc pol w formularzu.
$row[0] - to nazwa usera pobrana z bazy.

Tak wiec ilosc pol w formularzu jest zmienna i zalezy od ilosci userow, ktora jest pobierana z bazy...

Wiec przy 3 userach pola maja nazwe:
nazwa1, nazwa2, nazwa3 oraz opis1, opis2, opis3...
Gdy wstawi sie do bazy 4-go uzytkownika to dojdzie nazwa4 i opis4.

Jezeli ma ktos jakis pomysl jak w inny sposob napisac taki formularz, w inny sposob niz ja to zrobilem, oraz go obsluzyc to rowniez prosze o napisanie tego w tym temacie smile.gif


OBSLUGA FORMULARZA
  1. <?
  2.  
  3. include_once ("../connect.php");
  4.  
  5. // Dodanie do bazy danych.
  6.  
  7. $nr = 0;
  8. for($nr = 1; $nr <= $ilosc_do_wpr; $nr++)
  9. {
  10.  
  11. // TUTAJ MUSI BYC COS, CO PRZY PIERWSZYM PRZEJSCIU PETLI PODSTAWI POD ZMIENNE $naz
    wa_wpr I $opis_wpr DANE Z FORMULARZA $nazwa1 i $opis1, PRZY DRUGIM PRZEJSCIU z pol $nazwa2 i $opis2
     itd... 
  12.  
  13. $query = "INSERT INTO stat_pkt (nazwa, ilosc_pkt, data_wpr)
  14. VALUES ('$nazwa_wpr', '$opis_wpr', NOW())";
  15. if ($result = @mysql_query ($query)) { // Wszystko zosta-o wykonane poprawnie.
  16.  echo '<p>Zostalo dodane.</p>';
  17.  } else { // JeŁli wykonanie zapytania siÓ nie powiod-o.
  18.  echo '<p><font color="red">Nie zostalo dodane.</font></p><p>' . mysql_error() . '</p>';
  19. }
  20. }
  21.  
  22. ?>

Teraz pytanie:
jak zrobic, aby w pliku obslugujacym formularz do zmiennych $nazwa_wpr i $opis_wpr byly, przy kazdym przejsciu petli wstawiajacej wartosci do bazy, podstawiane wartosci z pol z forularza (ktorych nazwa i ilosc jest zalezna od ilosci uzytkownikow) ?

Jezeli calosc da sie zrobic w inny sposob, to rowniez prosze o pomoc...

Obojetnie w jaki sposob to zrobie, wazne aby dzialalo smile.gif

W calosci chodzi o to, aby za jednym razem wstawic te opisy wszystkim uzytkownikom.
Zrobilem to w ten sposob, ze nazwy uzytkowwnikow sa pobierane z bazy, a nazwy tych pol w formularzy zaleza od ilosci uzytkownikow...

Teraz do innej tabeli trzeba wstawic: nazwe uzytkownika i jego opis.

Jezeli moge prosic o napisanie tego lub tych pliczkow albo cokolwiek, bo ja juz wymiekam z tym...


~mike_mech
mike
Ustawiaj nazwy pól w formularza jako tablice:
  1. <form action="#" method="post">
  2. <input type="text" name="opis[]" />
  3. <input type="text" name="inie[]" />
  4. <!-- i.t.p. -->
  5. </form>

Potem daj sobie:
  1. <?php
  2. echo print_r( $_POST );
  3. ?>

żeby zobaczyć w jakiej formie przyjdą dane.
n1edw1ed
Dzieki smile.gif

Dokladnie o cos takiego mi chodzilo smile.gif

W koncu wszystko dziala jak nalezy smile.gif

Jeszcze raz wielkie DZIEKI smile.gif
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.