Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]checkbox i porównywanie
kielich
post
Post #1





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

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


witam jak spreperowac kod który:

jesli w bazie regulamin mam wartosc tak to chcekbox bedzie miał checked="checked" (czyli zaznaczenie)
a jesli w bazie jest nie to jest odznaczony
questionmark.gif?
bede wdzieczny za odpowiedz


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
blooregard
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Zakładając, że pole w bazie danych nazywa się 'regulamin':
  1. <input type="checkbox" value="1" <?php echo ($row['regulamin'] == 'tak')? 'checked="checked"' : ''; ?> / >


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
kielich
post
Post #3





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

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


no fakt banał ze tak nie pomyślałem thx

Ps. A jesli odznacze i zeby w bazie zosał rekord UPDAT'niety tongue.gif to jak proponujesz questionmark.gif


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
blooregard
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Ja robię tak:

W funkcji, do której przekazuję dane z formularza (w formie tablicy) i która zapisuje je w bazie:
  1. <?php
  2. ...
  3. $nowa_wartosc_pola_regulamin = ($tablica_z_danymi_z_formularza['regulamin'])? 'tak' : 'nie';
  4. ...
  5.  
  6. $query = "UPDATE tabela SET regulamin = '".$nowa_wartosc_pola_regulamin."' WHERE ..."
  7. ?>


Czyli, w przypadku nie zaznaczenia checkboxa $tablica_z_danymi_z_formularza['regulamin'] będzie pusta, i wtedy zmiennej $nowa_wartosc_pola_regulamin zostanie przypisana wartość 'nie'.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
kielich
post
Post #5





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

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


probowałem z ifami no ale nic sad.gif twojego kod nie czaje troch

zrobiłem tak i dział
Kod
<?php
var_dump($_POST);

if(isset($_POST['wiadomosci'])==TRUE)
{
$pytanie = "UPDATE klient SET wiadomosci='TAK'";
$tem=mysql_query($pytanie) or die ('Nie mozna wykonanac.Przepraszamy');
}else{
$pytanie = "UPDATE klient SET wiadomosci='NIE'";
$tem=mysql_query($pytanie) or die ('Nie mozna wykonanac.Przepraszamy');
}
?>


teraz jest dobrze

Ten post edytował kielich 6.07.2009, 23:08:43


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
blooregard
post
Post #6


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Jesli checkbox nie jest zaznaczony, nie pojawi się w tablicy zmiennych przesłanych POST-em.

Wystarczy więc sprawdzić, czy takie pole istnieje - jeśli nie, to oznacza nie zaznaczonego checkboxa i wtedy UPDATE wstawia 'nie' w pole regulamin.

Walnij sobie var_dump($_POST); na początku skryptu, gdzie odbierasz zmienne z formularza i patrz, co się zmienia, jak zaznaczasz/odznaczasz checkbox'a, a zrozumiesz.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
kielich
post
Post #7





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

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


kurde jednak nie jest dobrze bo o sprawdza czy jest wysłany wystarczy ze przejde miedzy podstronami i warunek nie jest spełniony i daje mi na NIE

juz sam nie wiem sad.gif


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
blooregard
post
Post #8


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Protokół HTTP jest bezstanowy, czyli nie zapamiętuje swojego stanu pomiędzy kolejnymi wywołaniami. Jeśli przechodzisz do innej podstrony i chcesz mieć zaznaczonego checkboxa, musisz przesłać jego aktualny stan POST-em lub GET-em. Sam z siebie ten checkbox Ci się nie zaznaczy.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
kielich
post
Post #9





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

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


juz nie chodzi o HTTP tylko o to jak mam zrobic bo kiedy mam tak
Kod
<?php
var_dump($_POST);

if(isset($_POST['wiadomosci'])==TRUE)
{
$pytanie = "UPDATE klient SET wiadomosci='TAK'";
$tem=mysql_query($pytanie) or die ('Nie mozna wykonanac.Przepraszamy');
}else{
$pytanie = "UPDATE klient SET wiadomosci='NIE'";
$tem=mysql_query($pytanie) or die ('Nie mozna wykonanac.Przepraszamy');
}
?>

to jest zostanie zaznaczony daje na tak a kiedy jest zaznaczony i nacisne zatwierdz (WYSYŁAM POSTEM) to sie odznacza bo warunek nie jest TRUE ale checkbox'a nie ruszałem
zwykle o to nie prosze ale czy mozesz zapodac jakos pelny kod questionmark.gif

Ten post edytował kielich 6.07.2009, 23:30:18


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
blooregard
post
Post #10


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




  1. <?php
  2. $pytanie = "UPDATE klient SET wiadomosci= '" .(($_POST['wiadomosci'])? 'TAK' : 'NIE')."'";
  3. $tem=mysql_query($pytanie) or die ('Nie mozna wykonanac.Przepraszamy');
  4. ?>


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
kielich
post
Post #11





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

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


OK działa
w przeciwieństwie do innnych tym co pomagaja zawsze daje songa i tak bedzie w tym przypadku thx

Ten post edytował kielich 7.07.2009, 00:28:05


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 07:02