Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: obsługa dynamicznego formularza w php
Forum PHP.pl > Forum > Przedszkole
gala
Witam,

Mam problem, nad którego rozwiązaniem zastanawiam się od dłuższego czasu i nic mi nie przychodzi do głowy.
Chodzi o to, że generuję na podstawie bazy danych formularz.
Sa to pola tekstowe, których nazwy są cyframi.

Generalnie w formularzy chodzi o przyporządkownie określonym cyfrom - nowych.
A następnie - w kolejnym kroku - wykonać zapytanie do bazy, które zamieni źródłowe cyfry na podane przez uzytkownika.


A wiec po kolei.
Najpier robię zapytanie do bazy

SELECT nazwa, wiek
FROM tabela
where nazwa='starsi'

wynikiem tego zapytanie będą dane:

starsi | 1
starsi | 23
starsi | 45

Na podstawie wyników tego zapytania tworzę formularz umożliwiający przyporządkować pewnym wartościom (cyfrom) - inne.

Formularz wygeneruje mi coś takiego:
z lewej strony będą pola tekstowe (disabled) zawierające cyfry pozyskane z bazy, a z prawej
pole input do przyporządkowania nowej cyfry, którego nazwa będzie odpowiadać wartościom wyłączonego pola z lewej strony.


czyli dostaję coś takiego
---------------
[1 ] [ ]
[23] [ ]
[45] [ ]

[Zamien]
---------------

Załużmy użytkownik wpisał coś takiego:

---------------
[1 ] [10]
[23] [11]
[45] [2]

[Zamien]
---------------

Po kliknięciu na [zamień] odpowiednie cyfry z bazy powinny zostać zastapione nowymi (wprowadzonymi przez użytkownika).
Zostanie to wykonane za pomocą wygenerowanego skryptu SQL:

SELECT id,
nazwa,
decode(wiek, 1, 10, 23, 11, 45, 2)
FROM tabela
WHERE nazwa='starsi'

a dane wydrukowane na ekranie.

jak widać dane z formularza posłużyły do wygenerowania wartości dla funkcji decode.

Problem w tym, że za każdym razem mogą to być różne cyfry i może być ich różna ilość.

Pytanie.
Skąd mam wiedzieć, jakie będą nazwy pól
Jak to obsłużyć w php ?
Kuziu
  1. <?php
  2.  
  3. $sql = 'SELECT nazwa, wiek FROM tabela where nazwa='starsi'';
  4. $result = mysql_query($sql) or die(mysql_error());
  5.  
  6. while($row = mysql_fetch_array($result)){
  7.  echo('<input type=text value=' . $row['wiek'] . '>');
  8.  echo('<input type=text name=tab[]><br />');
  9. }
  10.  
  11. ?>


plik_odbierający.php
  1. <?php
  2.  
  3. for($i=0;$i<count($tab);$i++){
  4.  echo($tab[$i]);
  5. }
  6.  
  7. ?>
Wieviór
Ja nie do końca wiem o co chodzi w całości, ale wiem jedno:

Radzę zrobić index. Bo tu chyba chodzi o jakiś ludzi. To jak się dwóch ludzi znajdzie z 23 np. to obu Ci zamieni na nowe. tongue.gif
borec
pytanie poza konkursem, po co wyciagasz nazwe z bazy skoro wiesz ze jest 'starsi'?
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.