Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz - przekazywanie listy uczestników
Forum PHP.pl > Forum > PHP
dawid73
Witam,
jestem początkującym programistą PHP i być może zadam banalnie proste pytanie do Was, ale
proszę o pomoc w temacie:

Programuje z użyciem framework Codeigniter

Potrzebuję przekazać w formularzu listę osób, które uczestniczyły w danym szkoleniu.
Uruchamiam widok, do którego przekazuje tabelę z wszystkimi uczestnikami z tabeli MySql.
  1. $czlonkowie['czl'] = $this->db->select('id, imie, nazwisko')
  2. ->from('czlonkowie')
  3. ->where('czynny', '1')
  4. ->get()
  5. ->result();
  6.  
  7. $this->load->view('akcje_dodaj', $czlonkowie);

Użytkownik ma zaznaczyć te osoby które był na szkoleniu i dać "wyślij"
Wówczas mam dodać do bazy do tabeli uczestnicy_szkolen (id_szkolenia; id_użytkownika) tyle razy ile było użytkowników.

Próbowałem z użyciem checkbox ale chyba błędnie myślę:
  1. <?php foreach ($czl as $cz) { ?>
  2. <div class="checkbox">
  3. <label>
  4. <input type="checkbox" name="uczes" value="<?php echo $cz->id; ?>">
  5. <?php
  6. echo $cz->imie;
  7. echo " ";
  8. echo $cz->nazwisko;
  9. echo "</br> ";
  10. ?>
  11. </label>
  12. <?php } ?>
  13. </div>



Z góry dziękuje za pomoc


Jeżeli nie wiecie jaka powinna być składnie w CodeIgniter to podrzucie pomysł jak to zrobić?

Z wykorzystaniem checbox? Czy jakaś inna metoda?
darko
Można użyć też select multiple:

http://www.w3schools.com/tags/att_select_multiple.asp

A gdzie próbujesz dodać
Cytat
tyle razy ile było użytkowników
questionmark.gif
dawid73
może wyjaśnię Ci trochę logikę i cel:
1. Mam tabele "użytkownicy" , "szkolenia" , "uczestnicy_szkolen"

2. Uczesnicy_szkolen to tabela wiele-do-wielu zawierająca id_użytkownika i id_szkolenia, czyli do szkolenia o id=1 moze być dopisanych 3 użytkowników z id=1,2,3

Czyli tabela wygląda tak:
_________________________
|id_szkolenia | id_uzytkownika|
------------------------------------
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
-----------------------------------


3. No i teraz tu mam problem i dziurę w głowie. Wiem jak ma wyglądać tabela wiele-do-wielu ale jak ma wyglądać składania zapytania aby dodało tyle razy rekord do bazy uczestnicy_szkolen ilu ktoś zaznaczył użytkowników.

Select oraz Selectmultiple działa tak, że przekazuje " cars=volvo&cars=saab&cars=opel&cars=audi " czyli 4 wartości zmiennej cars (samochody to przykład z linku z postu wyżej) i jak teraz zrobić, żeby 4 razy dodało mi do tabeli wiersz.


/////////EDYCJA///////////


Wpadłem jeszcze na jeden pomysł, mogę zrobić tak:
  1. <input type="checkbox" name="<?php echo $cz->id; ?>" value="1">


wówczas GET przekazuje mi taki ciąg: (...)test?1=1&13=1
1 i 13 to ID zaznaczonych użytkowników.

Tylko teraz jak to odebrać i jak wygenerować zapytanie do bazy.
darko
Na początek zrób tak:

  1. <input type="checkbox" name="id[]" value="13"/>


i po wysłaniu:
  1. var_dump($_GET['id']);
dawid73
Dzięki, naprowadziłeś mnie na rozwiązanie problemu smile.gif

w "name" wpisałem id[] - i co za tym idzie mogłem odebrać wartości jako array. Potem w pętli foreach dodaje do tabeli wartości.

Super forum, dziękuje za pomoc smile.gif leci thx do Ciebie.
darko
Cieszę się, że mogłem pomóc biggrin.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.