Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> obsługa dynamicznego formularza w php, dynamiczny formularz
-gala-
post 22.02.2005, 08:23:32
Post #1





Goście







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 ?

Ten post edytował gala 22.02.2005, 08:31:52
Go to the top of the page
+Quote Post
Kuziu
post 22.02.2005, 09:29:42
Post #2





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


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


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
-Wieviór-
post 22.02.2005, 13:50:46
Post #3





Goście







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
Go to the top of the page
+Quote Post
borec
post 22.02.2005, 14:00:23
Post #4





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 18.07.2003
Skąd: Tarnów

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


pytanie poza konkursem, po co wyciagasz nazwe z bazy skoro wiesz ze jest 'starsi'?


--------------------
Gentoo Linux 64bit / PHP 5.2 / MySQL 5.1
-> Administracja serwerami Linux i FreeBSD
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: 24.07.2025 - 23:36