Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP]Zmiana w rekordzie tabeli po zaznaczeniu/odznaczeniu checkbox-a
krzesik
post
Post #1





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


Witam, mam w tabeli w każdym rekodzie następujący kod definiujący checka
  1. if ($r['udostepnij'] == 1)
  2. {
  3. echo "<td width=100 align=center><input type=\"checkbox\" name=\"udostepnij\" checked=\"checked\"></input>";
  4. }
  5. else {
  6. echo "<td width=100 align=center><input type=\"checkbox\" name=\"udostepnij\"></input>";
  7. }
  8.  


chciałbym aby automatycznie po kliknięciu w pustego checka rekord w bazie zmienił swoją wartość na 1 a na pełnego checka na 0,

nie chodzi mi o zapytanie SQL bo takie mam
  1. mysql_query("update tabela SET udostepnij='1' WHERE id='$id'") OR die('Błąd zapytania: '.mysql_error());
  2. echo '<meta http-equiv="refresh" content="1; url=rej.php">';




prosze o pomoc w temacie

Go to the top of the page
+Quote Post
krzychu0808
post
Post #2





Grupa: Zarejestrowani
Postów: 428
Pomógł: 2
Dołączył: 1.04.2007
Skąd: Pogorzelica

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


Jeżeli miało by się to odbywać bez przeładowania strony to na szybko można wykorzystać Jquery, Ajax.
Jeżeli klikniesz checkbox, uruchamia się skrypt php który zmienia wartość w bazie.

Przykłady wywołania skryptów PHP przez ajax + obsługa zdarzeń użytkownika.
http://www.doman.art.pl/kursjs/kurs/jquery/jquery_ajax.html

A tutaj troszkę o checkbox w Jquery:
prosty przykład: http://bazawiedzy.cichaprzystan.org/62/jak...est-zaznaczony/
więcej informacji: http://api.jquery.com/checkbox-selector/

Ten post edytował krzychu0808 21.06.2013, 08:06:05
Go to the top of the page
+Quote Post
krzesik
post
Post #3





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


ale chyba nie o to mi chodziło...
chciałbym zaznaczyc checka (niezaznaczonego) nastepnie wykonuje się zapytanie zmieniając wartość w bazie, strona się przeładowuje i widoczny jest zaznaczony check i odwrotnie
Go to the top of the page
+Quote Post
krzychu0808
post
Post #4





Grupa: Zarejestrowani
Postów: 428
Pomógł: 2
Dołączył: 1.04.2007
Skąd: Pogorzelica

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


Moim zdaniem bardziej wydajne będzie wykorzystanie ajax do tego bo ograniczymy ilość zapytań. Użytkownik będzie chciał zaznaczyć 10 pozycji i mamy 10 x ilość zapytań strony i za każdym razem musi czekać za przeładowaniem. A jak dobrze napiszemy JS + Ajax to wyślemy tylko 10 zapytań i zmiana następuje natychmiast.

Chyba że to tylko taki pojedynczy checkbox to można się zastanowić. No i jeżeli ktoś wyłączy JS to nie zaznaczy tego !

Ten post edytował krzychu0808 21.06.2013, 18:40:35
Go to the top of the page
+Quote Post
krzesik
post
Post #5





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


tak to jest pojedynczy check

więc tak udało mi się zrobić że zaznacza checka i zmienia wartość w bazie (po przeładowaniu check jest zaznaczony) jednak mam problem w druga stronę, aby "odznaczyć" checka
oto kod:

  1. .......
  2. if ($r['udostepnij'] == 1){
  3. echo "<td width=100 align=center>
  4. <input type=\"checkbox\" name=\"udostepnij_on\" onclick=\"submit();\" checked=\"checked\"></input>";
  5. }
  6. if ($r['udostepnij'] == 0) {
  7. echo "<td width=100 align=center>
  8. <input type=\"checkbox\" name=\"udostepnij_off\" onclick=\"submit();\"></input>";
  9. }
  10. ......
  11.  
  12.  
  13. $id = trim($_POST['id']);
  14. $udostepnij_off = trim($_POST['udostepnij_off']);
  15.  
  16.  
  17. if(!empty($udostepnij_off) and !empty($id)) {
  18. mysql_query("update tabela SET udostepnij='1' WHERE id='$id'")
  19. or die('Błąd zapytania: '.mysql_error());
  20. echo '<meta http-equiv="refresh" content="0; url=rej.php">';
  21. }
  22. $id = trim($_POST['id']);
  23. $udostepnij_on = trim($_POST['udostepnij_on']);
  24.  
  25. if(!empty($udostepnij_on) and !empty($id)) {
  26. mysql_query("update tabela SET udostepnij='0' WHERE id='$id'")
  27. or die('Błąd zapytania: '.mysql_error());
  28. echo '<meta http-equiv="refresh" content="0; url=rej.php">';
  29. ......


wiem już ze zapytania działają OK, problem leży w :
<b> <input type=\"checkbox\" name=\"udostepnij_on\" onclick=\"submit();\" checked=\"checked\"></input>";</b>
a konkretnie w checked=\"checked\" jak to usune to zmiany do bazy trafiaja jak należy, ale nie moge tegu usunać bo nie wiem wtedy który jest zaznaczony....
(IMG:style_emoticons/default/sad.gif)


ma ktos jeszcze jakis pomysł?

Ten post edytował krzesik 21.06.2013, 19:21:30
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: 23.08.2025 - 21:20