Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: checkbox do bazy
Forum PHP.pl > Forum > PHP
kw95s
Witam, mam problem, nie wiem jak zapisać id zaznaczonych checkboxów w jednym polu rekordu
Problem jest na tej stronie.
http://tiny.pl/hvwb8
W wierszu STANOWISKA wyświetlone są rekordy z bazy
Tutaj podaje kod strony DODAJ PRACOWNIKA
Chodzi mi o to, żeby to pola ZAWOD zapisywały się id zawodów oddzielone spacjami np. "1 3 4 5 13 24"
Struktura tabeli wyplaty_employees tutaj: http://prntscr.com/1gw1tm
  1. <?php
  2.  
  3. echo '<div style="text-align:center; font-weight:bold; font-size:17; color:white;">DODAWANIE PRACOWNIKA</div>';
  4.  
  5. echo '
  6. <div id="main">
  7. <form method=post action=index.php?p=add_employee>
  8. <table class=employees width=690>
  9. <tr>
  10. <td style="border-left:6px #7CCD24 solid;">IMIĘ</td><td style="border-top-right-radius:20px;"><input type="text" name="imie" class="add_employee" placeholder="IMIĘ"></td>
  11. <tr>
  12. <td style="border-left:6px #69C6F4 solid;">NAZWISKO</td><td><input type=text name="nazwisko" class="add_employee" placeholder="NAZWISKO"></td>
  13. <tr>';
  14.  
  15. $zawod = zapytaj("SELECT * FROM wyplaty_kategorie");
  16. echo '
  17. <td style="border-left:6px #69C6F4 solid;">STANOWISKA</td><td>';
  18.  
  19. while($zawodd = mysql_fetch_assoc($zawod))
  20. {
  21. echo '
  22. <input type=checkbox name=zawody value='.$zawodd[id].'> '.$zawodd[nazwa].'
  23.  
  24. ';
  25.  
  26. }
  27.  
  28. echo ' <tr>
  29. <td style="border-left:6px #69C6F4 solid;">PENSJA</td><td><input type="number" maxlength="6" name="pensja" class="add_employee" placeholder="PENSJA"></td>
  30. <tr>
  31. <th colspan="6" style="border-left:6px #69C6F4 solid;">DANE TELEADRESOWE (wypełniać wg. wzoru)</th>
  32. <tr>
  33. <td style="border-left:6px #69C6F4 solid;">ULICA</td><td><input type="text" name="ulica" class="add_employee" placeholder="Katowicka"></td>
  34. <tr>
  35. <td style="border-left:6px #69C6F4 solid;">NR LOKALU</td><td><input type="text" maxlength="6" name="nr_lokalu" class="add_employee" placeholder="54a"></td>
  36. <tr>
  37. <td style="border-left:6px #69C6F4 solid;">NR MIESZKANIA</td><td><input type="number" maxlength="6" name="nr_mieszkania" class="add_employee" placeholder="1"></td>
  38. <tr>
  39. <td style="border-left:6px #69C6F4 solid;">MIASTO</td><td><input type="text" name="miasto" class="add_employee" placeholder="Katowice"></td>
  40. <tr>
  41. <td style="border-left:6px #69C6F4 solid;">KOD POCZTOWY</td><td><input type="text" size="6" maxlength="6" minlength="6" name="kod_pocztowy" class="add_employee" placeholder="40-216"></td>
  42. <tr>
  43. <td style="border-left:6px #69C6F4 solid;">PESEL</td><td><input type="number" maxlength="11" name="pesel" class="add_employee" placeholder="73062156372"></td>
  44. <tr>
  45. <td style="border-left:6px #69C6F4 solid;">ZATWIERDŹ</td><td style="border-bottom-right-radius:20px;"><input type="submit" value="DODAJ PRACOWNIKA" name="add_employee_ok" class="add_employee"></td>
  46. </table>
  47.  
  48.  
  49. ';
  50.  
  51. if($_POST['add_employee_ok']<>'')
  52. {
  53.  
  54. $imie = $_POST['imie'];
  55. $nazwisko = $_POST['nazwisko'];
  56. $pensja = $_POST['pensja'];
  57. $ulica = $_POST['ulica'];
  58. $nr_lokalu = $_POST['nr_lokalu'];
  59. $nr_mieszkania = $_POST['nr_mieszkania'];
  60. $miasto = $_POST['miasto'];
  61. $kod_pocztowy = $_POST['kod_pocztowy'];
  62. $pesel = $_POST['pesel'];
  63. $ip = $_SERVER['REMOTE_ADDR'];
  64. $zawody = $_POST['zawody'];
  65.  
  66. if(!is_numeric($pensja))
  67. {
  68. exit();
  69. }
  70. else
  71. {
  72.  
  73.  
  74. echo $zawody;
  75. $wynik = zapytaj("insert into `wyplaty_employees` set `imie` = '$imie', `nazwisko` = '$nazwisko', `pensja` = '$pensja', `ulica` = '$ulica', `nr_lokalu` = '$nr_lokalu', `nr_mieszkania` = '$nr_mieszkania', `miasto` = '$miasto', `kod_pocztowy` = '$kod_pocztowy', `pesel` = '$pesel', `zawod` = '$zawody', `ip` = '$ip';");
  76.  
  77.  
  78.  
  79. }
  80. }
  81.  
  82. ?>

nospor
Checkboxy maja miec nazwe tablicową
czyli nie: name=zawody
a: name=zawody[]

Wowczas w $_POST['zawody'] bedziesz mial tablice zaznaczonych checkboxow z ktora rob co chcesz
kw95s
jak teraz przekazać te dane z tablicy?
Na ten moment do bazy idzie Array
nospor
Powiedzialem ze to tablica i rob z nia co chcesz. Jak chcesz zlaczyc ja spacjami to uzyj IMPLODE() - patrz manual php
kw95s
implode zadziałało, dzięki

Jak teraz odczytać te dane z rekordu tj. "1 2 3 4" ,tak żeby traktował je pojedynczo?
kujol
Może tak. Pobierze dane rekordy i wyświetli je jeden pod drugim w tabeli.

Kod
$zapytanie = "SELECT
`loginy` FROM
' uzytkownicy`";
$idzapytania = mysql_query
($zapytanie);
while ($wiersz =
mysql_fetch_row
($idzapytania))


echo "<table border=1>
<tr><td>$wiersz[0] </td></
tr>
</table>"


W tym przykładzie wyświetli wszystkie loginy z tabeli uzytkownicy.
kw95s
użyłem str_split i if(in_array

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.