Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Pola użytkownika
Forum PHP.pl > Forum > Przedszkole
ghastblood
Witam

mam taki problem jak mogę zrobić żeby użytkownik mógł generować własne formularze. np użytkownik z uprawnieniami organizatora może wygenerować formularz rejestracji uczestników jakiego eventu. Np generuje formularz zawierający imie nazwisko wiek pesel nip czy co tam potrzebuje. Jak powinienem zapisywać te dane ? Jakieś generowanie do mysql czy takie dane zapisywać do pliku ? Proszę o jakiś pomysł na rozwiązanie tego problemu. Może ktoś ma jakiś przykład.
Sephirus
Można to ogarnąć na bazie danych. Przykładowo robisz sobie tabelę:

formularz

id | id_user | ... <- tu jakieś pola opisujące formularz

pola

id | id_formularz | typ | sorter | ... <- tu dodatkowe pola opisujące pole (nazwa, opis - to co Ci potrzebne)

W tym momencie tworzysz sobie formularz, dodajesz pola. Możesz go wyświetlić po id formularza. Odpowiednio powinieneś obsłużyć jedynie akcje wysyłania.

Kolejna tabela

id | id_user | id_formularz | id_pole | wartosc

służyła by do zapisywania danych wypełnionych pól z danego formularza... itd... itp...

Można to fajnie ogarnąć jak się dobrze zaprojektuje wink.gif
krzysiekk
"Kolejna tabela

id | id_user | id_formularz | id_pole | wartosc

"

mam pytanie w jaki sposób ma być przechowywana wartość formularza jeśli nie znamy ilości pól formularza co za tym idzie nie możemy tworzyć w bazie tabeli z określoną ilością pól .


kiedyś spotkałem się z takim przypadkiem


formularz tworzony przez admina( nieznana ilość pól) 10 ,20 ... nadawany był ID formularza

dane zapisywane były w bazie tak jak kolega pisał id | ID_FORM | WARTOŚĆ FORMULARZA wszystkie pola przetworzone
  1. $result = json_encode($form);
ghastblood
Witam właśnie zabrałem się za generowanie formularzy i mam problem z polem select

kod

  1. if($_GET["id"])
  2. {
  3. db_connect($host, $user, $pass, $base);
  4.  
  5. $r = mysql_query("SELECT * FROM pole WHERE pole_form_id = '".$_GET['id']."' ORDER BY pole_form_posiotion ");
  6.  
  7.  
  8. while($q = mysql_fetch_assoc($r))
  9. {
  10.  
  11. if($q['pole_type'] == 'textbox')
  12. {
  13. txtbox($q['pole_lable_name'], $q['pole_name'], $q['pole_type']);
  14. }
  15.  
  16. if($q['pole_type'] == 'select')
  17. {
  18. selectbox($q['pole_lable_name'], $q['pole_name']);
  19. $r = mysql_query("SELECT * FROM pole_select INNER JOIN pole ON pole_select_pole_id = pole_id WHERE pole_id='".$q['pole_id']."'");
  20. while($q = mysql_fetch_assoc($r))
  21. {
  22. selectbox_option($q['pole_select_nazwa'], '');
  23.  
  24. }
  25.  
  26. selectbox_close();
  27. }
  28.  
  29. }
  30.  
  31. db_close();
  32.  
  33. }

obojętnie ile dodam ich to bazy danych zawsze otrzymam pierwszego napotkanego selecta

funkcji nie tłumaczę bo w zasadzie jest tam tylko echo np
  1. echo '<select>'; , echo '</select>';
nospor
Nadpisujesz sobie zmienne $q i $r....
ghastblood
Dzięki nospor za pomoc.
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.