Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] zapis checkboxow i ich edycja
Forum PHP.pl > Forum > Przedszkole
lnn
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...



to co chce uzyskac przy edycji?


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:
erix
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". winksmiley.jpg
lnn
wlasnie tak sie zastanawialem czy te checboxy jakbym pooznaczal jako same liczby czy nie byloby latwiej potem ich porownywac??

a petla while czy jaka?
erix
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.
erix
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.
lnn
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 winksmiley.jpg begginer - rozumiecie ;/
no ale nic, zaczynam proby winksmiley.jpg
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.