[PHP] jeden checkbox

0

Witam, mam następujący problem:

Stworzyłem formularz, w którym jest jeden checkbox, dajmy na to do zaznaczenia czy paczka jest do odbioru osobistego.

<p>Odbior os.: <input type="checkbox" name="osobisty" /></p>

i teraz chciałbym wrzucić w zmienną napis "TAK" lub "NIE" w zależności czy jest zaznaczony box czy nie, i tu pojawia się problem, próbowałem już na kilka sposobów, jednak przy if'ie zawsze wyrzuca mi "NIE" lub nie wrzuca w zmienną nic.

Najbardziej sensowne wydaje się być (jednak nie działa):

$odbior = isset($_POST['osobisty']) ? "TAK" : "NIE";

lub

$odbior = $_POST['osobisty'] ? "TAK" : "NIE";

próbowałem również (tutaj nic nie daje):

$odbior = $_POST['osobisty'];

nic nie działa. Pomożecie? :-)

PS: metoda isset podobno tworzy zmienna jesli checkbox byl utworzony, lub nie, gdy nie był, to prawda? Może jakoś "wyłuskać" tą zmienną bądź jej brak?

0
$odbior = ($_POST['osobisty'] == 'on') 'tak' : 'nie';

Gdy jest zaznaczony checkbox, to jest mu ustawiana wartość "on" w odpowiadającej zmiennej w PHP. Gdy nie jest zaznaczony... zdaje się, że w ogóle wtedy go nie ma.

0

Dzięki!

Temat prosiłbym o zostawienie, ponieważ dość długo szukałem w internecie tak prostej odpowiedzi i nie znalazłem.

Jeszcze raz dzięki i mała uwaga, chyba zapomniałeś (literówka) "?" ;-)

czyli odpowiedź:

$odbior = ($_POST['osobisty'] == 'on') ? 'tak' : 'nie';

Pozdrawiam! ;-)

0

to "on" możesz zmienić dodając atrybut value do inputa
<input type="checkbox" name="ugh" value="zosia" />

$_POST['ugh'] == 'zosia'

0

Niestety właśnie wydaje mi się, że kiedyś próbowałem tak zrobić i nie działało, tzn. zawsze wyrzucało jako "odznaczony".

0
var_dump($_POST);

I sprawdź różnicę między zaznaczonym, a nie zaznaczonym.

1 użytkowników online, w tym zalogowanych: 0, gości: 1