Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Checkbox checked ładowany z bazy danych
SiganPL
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.03.2010

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


Witam...
Mam taki problem który zresztą nie wiem jak opisać...


Jak z listy checkboxów zapisać do bazy danych te które były zaznaczone, a później przeglądając tą samą stronkę checki które mieliśmy zaznaczone były checked=checked a te nie zaznaczone... nie zaznaczone? A gdy zaznaczymy lub odznaczymy checki zmiany zostawały zapisywane w bazie danych?

(IMG:http://img294.imageshack.us/img294/6573/checka.jpg)

Coś w stylu zainteresowań na fotce (IMG:style_emoticons/default/tongue.gif)

Sporo kombinowałem z tablicami i array_diff ale ciągle napotykałem błędy (dla mnie...) nie do rozwiązania (IMG:style_emoticons/default/smile.gif)

Moze ktos robił coś podobnego albo wie jak cos takiego zrobic?

Prosze o jakis kod... rade... o cokolwiek co mi pomoze (IMG:style_emoticons/default/smile.gif)

Jeżeli jest to niejasne a ktos chciałby pomóc to niech pisze a ja spróbuje wytłumaczyć to bardziej po ludzku (IMG:style_emoticons/default/smile.gif)
I przepraszam za zaśmiecanie
Go to the top of the page
+Quote Post
paxvim
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 21.03.2010

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


To musi być checkbox ładowany z bazy danych (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Wicepsik
post
Post #3





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. <form method="post"><input type="checkbox" name="zainteresowania[]" value="ksiazka">
  2. <input type="checkbox" name="zainteresowania[]" value="sport">
  3. <input type="checkbox" name="zainteresowania[]" value="kuchnia">
  4. <input type="checkbox" name="zainteresowania[]" value="tv">
  5. <input type="submit"></form>


  1. print_r($_POST['zainteresowania']);
Go to the top of the page
+Quote Post
webmaniak
post
Post #4





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

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


Witam!
Również mam problem z checkboxem. Chce żeby checkbox automatycznie się zaznaczał po sprawdzeniu czy zapytanie do bazy danych jest true-chodzi oczywiście o zmienną $pytanie.
kod tej części wygląda tak:
  1. function artykuly()
  2. {
  3. //lista artykułów
  4. echo 'Lista artykułów';
  5. ?>
  6. <table>
  7. <tr style="background:#BFBFBF;">
  8. <td> <?php echo '#';?></td>
  9. <td><input type="checkbox" name="glowny"></td>
  10. <td><?php echo 'Tytuł'; ?></td>
  11. <td><?php echo 'Data';?></td>
  12. <td><?php echo 'Kategoria';?></td>
  13. <td><?php echo 'Autor';?></td>
  14. <td><?php echo 'Opublikowany'; ?></td>
  15. <td><?php echo 'ID'; ?></td>
  16. </tr>
  17. <?php
  18. $x=0;
  19. $zapytanie = mysql_query("SELECT a.id_ar, a.id_cat, a.tresc, a.tytul, a.data, b.id, b.nazwa FROM articles a LEFT JOIN articles_categories b ON a.id_cat = b.id");
  20. $pytanie = mysql_query("SELECT opublikowane FROM articles WHERE opublikowane=true");
  21.  
  22. If ($rezltat=mysql_fetch_array($pytanie)){
  23. $_POST["pole[' $x']"]==true;}
  24.  
  25. while($wynik=mysql_fetch_array($zapytanie))
  26. {
  27. $x++;
  28. $i=0;
  29. ?>
  30. <tr>
  31. <td><?php echo $x; ?></td>
  32. <td><input type="checkbox" name="pole['<?php $x;?>']"></td>
  33. <td><?php echo stripslashes($wynik['tytul']); ?></td>
  34. <td><?php echo date("d.m.Y, H:i", $wynik['data']); ?></td>
  35. <td><?php echo $wynik['nazwa']; ?></td>
  36. <td><?php echo 'Autor';?></td>
  37. <td><?php if($rezultat=mysql_fetch_array($pytanie))
  38. {
  39. echo 'Tak';
  40. }
  41. else
  42. {
  43. echo 'Nie';
  44. }?></td>
  45. <td><?php echo $wynik['id_ar']; ?></td>
  46. </tr><?php
  47.  
  48. }
  49. ?>
  50. </table>
  51. <?php
  52. }
  53. ?>

i właśnie to mi nie działa-zaznaczenie checkboxów. Najprawdopodobniej coś namieszełem w polu name, pewnie te nawiasy też nie są prawidłowe, ale nie wiem jak się za to zabrać, jak naprawić. Będę wdzięczny za pomoc.
Go to the top of the page
+Quote Post
Danielcom
post
Post #5





Grupa: Zarejestrowani
Postów: 92
Pomógł: 3
Dołączył: 6.10.2008

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


Jeśli dobrze zrozumiałem, to tutaj jest mały przykład na polach radio
Pobierasz dane z MySQL jeżeli wartość pola wynosi 1 (True) pole domyślnie jest zaznaczone.

  1. <label>Tak</label> <input type="radio" name="lista_rezerwowa" value="1" <?php if ($kursy['lista_rezerwowa'] == '1'){ ?>checked="checked"<?php } ?> />
Go to the top of the page
+Quote Post
moto0095
post
Post #6





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Jeżeli chodzi o te checked=checked to czy nie możesz wyboru zapisać w sesjach (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Danielcom
post
Post #7





Grupa: Zarejestrowani
Postów: 92
Pomógł: 3
Dołączył: 6.10.2008

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


Może zapisać w sesji, ale jeśli później będzie chciał pobrać dane z bazy i edytować je ponownie, będzie musiał ustawiać sesje od nowa. Wydaje mi się, ze to bardziej skomplikowane a do tego zaśmieca sesje, jeśli tych pól będzie dużo.
Go to the top of the page
+Quote Post
webmaniak
post
Post #8





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

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


Cytat(Danielcom @ 7.05.2010, 23:47:26 ) *
Jeśli dobrze zrozumiałem, to tutaj jest mały przykład na polach radio
Pobierasz dane z MySQL jeżeli wartość pola wynosi 1 (True) pole domyślnie jest zaznaczone.

  1. <label>Tak</label> <input type="radio" name="lista_rezerwowa" value="1" <?php if ($kursy['lista_rezerwowa'] == '1'){ ?>checked="checked"<?php } ?> />

Tam brakuje średnika, bez niego jest błąd, ale właściwie teraz zrobiłem to inaczej. Pierwotnie chciałem mieć dwie kolumny związane z publikowaniem. Jedna to miała być kolumna checkboxów-tu jeśli wartość jest true to powinien być checkbox zaznaczony a druga opublikowane-jeśli jest opublikowany artykuł to z wartością "tak", a jeśli nie-z wartością "nie". Chciałem w taki sposób żeby po kliknięciu w zaznaczony checkbox(czyli odznaczeniu go) zmieniała się wartość w bazie danych na false-czyli poprzez UPDATE. Ale nie wiem czemu, gdy w kolumnie opublikowane wszystko się wyświetla prawidłowo to w kolumnie z checkboxami już nie. I na odwrót. Dlatego postanowiłem zamiast tych dwóch kolumn zrobić jedną z butonami. Jeśli wartość jest true w bazie to na buttonie jest Tak. W buttonie zrobiłem to za pomocą tego kodu:
  1. <button type="button" name="button['<?php $x;?>']" onclick="<?php
  2. $pytanie=mysql_query("UPDATE 'opublikowane' 'articles' SET 'opublikowane' = '$z' 'id_ar'= $a");
  3. ?>"><?php $y;
  4. if($rezultat=mysql_fetch_array($pytanie))
  5. {
  6. if($rezultat['opublikowane']==1)
  7. {
  8. echo $y="Tak";
  9. $z=0;
  10. }
  11. else
  12. {
  13. echo $y="Nie";
  14. $z=1;
  15. }
  16. }
  17. ?></button>

teraz chciałbym żeby po kliknięciu byłą aktualizacja tej wartości w bazie, tylko nie wiem dlaczego ten kod nie działa. Teraz widzę że jest coś nie tak chyba z $z ale nie wiem jak ustawić żeby zmieniało w tabeli na przeciwną. Wtedy po odświeżeniu przycisk automatycznie zmieniałby się na 'Nie'. zmiennej $a przypisałem wartość $wynik['id_ar']-nie wiem czy dobrze. Proszę o pomoc.
Go to the top of the page
+Quote Post
tehaha
post
Post #9





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


nie wiesz czemu nie działa? to odpal sobie to w przeglądarce i zobacz podgląd źródła i zobacz co masz w onclick=""
Go to the top of the page
+Quote Post
webmaniak
post
Post #10





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

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


W onclick="" nie ma nic, ale nadal nie wiem dlaczego, gdzie szukać błędu. Widzę tylko że kod php mi nie działa-ten pierwszy.
Go to the top of the page
+Quote Post
tehaha
post
Post #11





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


php działa po stronie serwera, czyli w momencie kiedy strona jest przeładowywana, po stronie przeglądarki działają takie technologie jak: javascript, ajax, biblioteka jquery, zanim zaczniesz coś pisać warto poznać podstawy podstaw
Go to the top of the page
+Quote Post
Danielcom
post
Post #12





Grupa: Zarejestrowani
Postów: 92
Pomógł: 3
Dołączył: 6.10.2008

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


Cytat(webmaniak @ 8.05.2010, 08:32:28 ) *
Tam brakuje średnika, bez niego jest błąd(...)


  1. <label>Tak</label> <input type="radio" name="lista_rezerwowa" value="1" <?php if ($kursy['lista_rezerwowa'] == '1'){ ?>checked="checked"<?php } ?> />


W którym miejscu brakuje średnika ? u mnie jest dokładnie tak zrobione i śmiga bez błędów.
Go to the top of the page
+Quote Post
webmaniak
post
Post #13





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

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


Cytat(Danielcom @ 8.05.2010, 12:55:21 ) *
  1. <label>Tak</label> <input type="radio" name="lista_rezerwowa" value="1" <?php if ($kursy['lista_rezerwowa'] == '1'){ ?>checked="checked"<?php } ?> />


W którym miejscu brakuje średnika ? u mnie jest dokładnie tak zrobione i śmiga bez błędów.

U mnie z kolei w końcowym fragmencie:
  1. <?php } ?>

mam błąd:
  1. Parse error: syntax error, unexpected '}' in ... on line 82

gdy zrobię tak:
  1. <?php ;} ?>

nie ma błędu.
Go to the top of the page
+Quote Post
kinder
post
Post #14





Grupa: Zarejestrowani
Postów: 39
Pomógł: 2
Dołączył: 15.03.2010

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


ten kod
  1. print_r($_POST['id']);


wypisuje u mnie takie cos:
  1. Array ( [0] => boks [1] => tenis )


a chcialbym uzyskac same wartosci czyli tylko: boks tenis
Czy ktoś mógłby mi pomóc..
Go to the top of the page
+Quote Post
phpion
post
Post #15





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




implode
  1. echo implode(', ', $_POST['id']);
Go to the top of the page
+Quote Post
kinder
post
Post #16





Grupa: Zarejestrowani
Postów: 39
Pomógł: 2
Dołączył: 15.03.2010

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


tak to rozwiazalo sprawe dziekuje
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: 20.09.2025 - 02:10