Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] zapis checkboxow i ich edycja
lnn
post
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


Witam!

Otóż zrobiłem już skrypt w którym użytkownik zaznacza dane checkboxy i następnie są one zapisywane, lecz przy probie zrobienia edycji tego okazało się, że wychodzą kosmosy przy oznaczeniu tych checkboxow ktore byly zaznaczone.

Ponizej zamieszczam jak wygladala tabela z danymi oraz efekt, i taki efekt tez chce przy edycji uzyskac, zeby oznaczalo co uzytkownik wczesniej wybral, zatem nie wiem czy nie trzeba bedzie od nowa tabeli pod zapis przygotowac?
Oraz kod zapisu...

(IMG:http://img189.imageshack.us/img189/6884/capture20100203182557.th.jpg)

to co chce uzyskac przy edycji?
(IMG:http://img713.imageshack.us/img713/4554/capture20100203182440.th.jpg)

kod - zapis
  1. // pobranie listy opcji udogodnien
  2. $udogodnienia_p_db = mysql_query("SELECT * FROM udogodnienia WHERE id % 2 = 0 ORDER BY wartosc");
  3. $udogodnienia_n_db = mysql_query("SELECT * FROM udogodnienia WHERE id % 2 = 1 ORDER BY wartosc");
  4.  
  5. // wywolanie formularza
  6. echo '<div class="title">Krok '.$_GET['step'].' - Udogodnienia</div>';
  7.  
  8. echo '<div class="podzial_cb">';
  9. while ($pokaz = mysql_fetch_array($udogodnienia_n_db))
  10. {
  11. echo '<input type="checkbox" name="chk-'.$pokaz['id'].'" />
  12. <label class="checkbox" for="chk-'.$pokaz['id'].'">'.$pokaz['wartosc'].'</label><br />';
  13. }
  14. echo '</div><div class="podzial_cb">';
  15. while ($pokaz = mysql_fetch_array($udogodnienia_p_db))
  16. {
  17. echo '<input type="checkbox" name="chk-'.$pokaz['id'].'" />
  18. <label class="checkbox" for="chk-'.$pokaz['id'].'">'.$pokaz['wartosc'].'</label><br />';
  19. }
  20. echo '</div>';
  21. //////////////////////////////////////////////////////////////
  22. $selected = $etap_4;
  23.  
  24. foreach($selected as $k =>$v) {
  25. if(preg_match("/chk-/",$k) != 0) {
  26. $temp = explode("chk-",$k);
  27. $selected[]=$temp[1];
  28. }
  29. }
  30.  
  31. $selected=array_filter($selected, 'is_numeric');
  32.  
  33. $saveme = "";
  34. if(count($selected) != 0) {
  35. foreach($selected as $h) {
  36. $saveme.=$h.",";
  37. }
  38. }
  39. if(strlen($saveme) != 0) {
  40. // usuwamy ostatni przecinek dla porządku:
  41. $saveme = substr($saveme, 0, strlen($saveme)-1);
  42. }
  43.  
  44. if (mysql_query("INSERT INTO `dane4` SET wartosci = '".$saveme."',
  45. user_id4 = '".$_SESSION['id']."',
  46. spis_id = '".$last_insert."' ")==true) {
  47. echo 'dodano checkboxy';
  48. } else { echo 'nie dodano';}
  49.  
  50.  
  51. // koniec zapisu checkboxow


przechowywanie danych:
(IMG:http://img683.imageshack.us/img683/8158/capture20100203183426.th.jpg)

Ten post edytował lnn 3.02.2010, 18:36:03
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Ponizej zamieszczam jak wygladala tabela z danymi oraz efekt, i taki efekt tez chce przy edycji uzyskac, zeby oznaczalo co uzytkownik wczesniej wybral, zatem nie wiem czy nie trzeba bedzie od nowa tabeli pod zapis przygotowac?

Porównuj odpowiednią wartość z $_POST z tym, co wypisuje pętla i dawaj checked="checked". (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
lnn
post
Post #3





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


wlasnie tak sie zastanawialem czy te checboxy jakbym pooznaczal jako same liczby czy nie byloby latwiej potem ich porownywac??

a petla while czy jaka?

Ten post edytował lnn 3.02.2010, 18:47:18
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Idealnie by było, gdybyś z tych elementów zrobił tablicę (nazwa[asd] jako nazwa).

Cytat
a petla while czy jaka?

Nie ruszasz niczego więcej oprócz dodania warunku w pętli, który dopisze atrybut, czy zaznaczony, czy nie.
Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Idealnie by było, gdybyś z tych elementów zrobił tablicę (nazwa[asd] jako nazwa).

Cytat
a petla while czy jaka?

Nie ruszasz niczego więcej oprócz dodania warunku w pętli, który dopisze atrybut, czy zaznaczony, czy nie.
Go to the top of the page
+Quote Post
lnn
post
Post #6





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


tzn pomyslalem tak, zeby juz nie wyodrebniac nr checkboxow z nazwy to bede je na stronie nazywal cyframi a pozniej zapisze wszystko do tablicy poodzielane przecinkami i wczytam tą tablice i .. wlasnie tu sie zawieszam (IMG:style_emoticons/default/winksmiley.jpg) begginer - rozumiecie ;/
no ale nic, zaczynam proby (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:13