Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz - przekazywanie listy uczestników
dawid73
post 18.01.2016, 21:10:54
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 18.01.2016

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


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?
Go to the top of the page
+Quote Post
darko
post 18.01.2016, 21:15:20
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


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


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
dawid73
post 18.01.2016, 21:47:51
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 18.01.2016

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


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.

Ten post edytował dawid73 18.01.2016, 21:49:18
Go to the top of the page
+Quote Post
darko
post 18.01.2016, 23:00:39
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Na początek zrób tak:

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


i po wysłaniu:
  1. var_dump($_GET['id']);


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
dawid73
post 19.01.2016, 20:33:27
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 18.01.2016

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


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.
Go to the top of the page
+Quote Post
darko
post 20.01.2016, 20:28:17
Post #6





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Cieszę się, że mogłem pomóc biggrin.gif


--------------------
Nie pomagam na pw, tylko forum.
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: 23.04.2024 - 21:19