Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Checkbox :(
Forum PHP.pl > Forum > Przedszkole
diamondking
Witam.
Zaczynam dopiero z PHP i MYSQL.

Chce zrobić edycje profilu a w nim mam pole zainteresowania z checkboxami

  1. <form method="post" action="">
  2. Zainteresowania:<br>
  3. <input type="checkbox" name="zainteresowania[]" value="sport, ">sport<br>
  4. <input type="checkbox" name="zainteresowania[]" value="motoryzacja, ">motoryzacja<br>
  5. <input type="checkbox" name="zainteresowania[]" value="gotowanie, ">gotowanie<br>
  6. <input type="checkbox" name="zainteresowania[]" value="turystyka, ">turystyka<br>
  7. <input type="checkbox" name="zainteresowania[]" value="informatyka, ">informatyka<br>
  8. <input type="checkbox" name="zainteresowania[]" value="muzyka, ">muzyka<br>
  9. <input type="checkbox" name="zainteresowania[]" value="film, ">film<br>
  10. <input type="checkbox" name="zainteresowania[]" value="fotografia, ">fotorafia<br>
  11. <input type="checkbox" name="zainteresowania[]" value="mechanika, ">mechanika<br>
  12. <input type="submit" value="ok"><br>
  13. </form>


Jak zrobić by pola, które ktoś zaznaczy wysłac do bazy danych do tabeli users, komórka zainteresowania oraz aby jesli wejdzie znów do edycji pola które zaznaczył wczesniej były zaznaczone ;D
Kshyhoo
Musisz odebrać dane z formularza w pętli. Tak też musisz musisz je wyświetlić...
diamondking
Kompletnie nie wiem jak mam to zrobić.

Chce zrobić stronę z profilem. W związku z tym z edycja profilu.
Będą tam pole typu select oraz checkbox.

Chce by te dane były wysyłane do bazy, wyświetlane w profilu oraz nastepnie zaznaczone w edycji profilu jesli już wczesniej się coś wybrało -

ktoś ma gotowe skrpyty ?
Turson
Napisz sobie pod tym formularzem
  1. if(isset($_POST['zainteresowania'])){
  2. foreach($_POST['zainteresowania'] as $v){
  3. echo $v."<br>";
  4. }
  5. }

kliknij na submit, zobacz jak działa i pokombinuj jak dodać do bazy
diamondking
No dodać do bazy raczej nie będę miał problemu (wyslę to do tabeli użytkownicy do pola zainteresowania jako text) tylko jak później sprawdzić co użytkownik wybrał wcześniej opcję i ja automatycznie zaznaczyć.
Turson
Jak już zapisujesz zainteresowania w bazie jednym polu to zapisuj je z jakimś separatorem, np. sport/informatyka,muzyka czy sport,informatyka,muzyka
Dzięki temu przy pobraniu tego rekordu z bazy będziesz mógł je rozdzielić na tablicę funkcją explode. Żeby sprawdzić czy uzytkownik zaznaczyl wczesniej muisz sprawdzac kazde po kolei
diamondking
nic mi to nie mówi kompletnie nie znam tych funkcji nie wiem o co chodzi ;D
Turson
Kliknij na link explode i przeczytaj
diamondking
Witam.

Mam na stronie w edycji profilu dział zainteresowania z polami checkbox

  1. <div class="listcheckbox"><label><input type="checkbox" name="zainteresowania[]" value="muzyka"> muzyka</label></div>
  2. <div class="listcheckbox"><label><input type="checkbox" name="zainteresowania[]" value="sport"> sport</label></div>
  3. <div class="listcheckbox"><label><input type="checkbox" name="zainteresowania[]" value="taniec"> taniec</label></div>
  4. <div class="listcheckbox"><label><input type="checkbox" name="zainteresowania[]" value="gotowanie"> gotowanie</label></div>
  5. <div class="listcheckbox"><label><input type="checkbox" name="zainteresowania[]" value="śpiew"> śpiew</label></div>
  6. (...)


Jak skutecznie zrobić by dane się zapisały do bazy danych a po ponownym wejściu w edycję były już zaznaczone te, ktore wybraliśmy wczesniej?
c4ash
Ja mam zapisywanie w ten sposob:
  1. for ($i=0;$i<count($_POST["zainteresowania"]);$i++) {
  2. $checkbox = $_POST["zainteresowania"][$i];
  3. mysql_query("INSERT INTO...");
  4. }
diamondking
Nie wiem jak to wykorzystać u siebie ;/

Przeczesuje cały internet i nie umiem znaleźć rozwiązania ;/
c4ash
No przeciez Ci napisalem, jak zapisac do bazy :/
Petla for zlicza ile bylo checkboxow i dla kazdego wywolania funkcji masz mysql_query z INSERT. Moze to malo elegancki sposob, ale dziala.
Jakby ktos mial cos lepszego to i ja sie zainteresuje smile.gif
diamondking
ale ja chciałem wszystko do jednego pola zapisać - możesz mi uzupełnić skrypt przykładowymi danymi zamiast INSERT INTO tongue.gif
c4ash
Ja akurat nie potrzebowalem zapisywac wszystkiego do jednego pola, wiec u mnie po insert jest set `pole` = '$checkbox` where.... i tam takie moje juz dalej wink.gif
Ale to jak wspomnialem wczesniej, malo eleganckie.
Kshyhoo
Założyłeś już wątek o tym samym skrypcie, potem założyłeś wątek a bardzo podobnym skrypcie, jedynie inne dane chcesz przekazać. Teraz trzeci wątek... następnym razem poleci wniosek o 10%.
Łączę wątek z poprzednim.
diamondking
Nikt nie potrafi mi tego normalnie wytłumaczyć tak abym to zrozumiał ;/
Jestem laikiem czy może ktoś napisać kod z przykłądem bazy danych i go opisać ;/ ?
Kshyhoo
Cytat(diamondking @ 17.02.2014, 18:16:20 ) *
Nikt nie potrafi mi tego normalnie wytłumaczyć tak abym to zrozumiał ;/
Jestem laikiem czy może ktoś napisać kod z przykłądem bazy danych i go opisać ;/ ?

Nie jesteś laikiem, jesteś leniem. Otrzymałeś kilka przykładów (niemal gotowce), więc powinieneś pokombinować i dać sobie radę. Czytaj ze zrozumieniem, co piszą inni i pracuj samodzielnie. Trzy wątki o tym samym z całą pewnością nic nie pomogą.

Cytat(diamondking @ 17.02.2014, 18:01:47 ) *
ale ja chciałem wszystko do jednego pola zapisać - możesz mi uzupełnić skrypt przykładowymi danymi zamiast INSERT INTO tongue.gif

Błąd - potem możesz mieć problem z takimi danymi. Ale Twoja brocha... Przed zapytaniem musisz użyć funkcji implode. Jak? Google > "INSERT INTO IMPLODE".
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.