Problem z niezaznaczonym checkboxem i $HTTP_POST_VARS

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Tigerrr
Posty: 4
Rejestracja: pt sty 16, 2009 12:25 am

Problem z niezaznaczonym checkboxem i $HTTP_POST_VARS

Post autor: Tigerrr »

Cześć,

Piszę dosyć obszerny formularz internetowy który chciałbym przesłać w postaci jednego wiersza do bazy danych. Mam problem z polami typu checkbox. O ile zaznaczony checkbox jest normalnie przesyłany do tablicy $HTTP_POST_VARS (u mnie value="1"), to niezaznaczone już nie są. Potrzebuję KONIECZNIE aby niezaznaczone pole przesyłało wartość value="0", w innym wypadku ilość elementów tablicy $HTTP_POST_VARS nie pokrywa się z liczbą kolumn w tabeli w bazie. Ma ktoś jakiś pomysł jak rozwiązać ten problem? Będę bardzo wdzięczny za pomoc. Pozdrawiam.
htmlowiecii
Nowy
Nowy
Posty: 86
Rejestracja: sob lip 19, 2008 11:51 am

Re: Problem z niezaznaczonym checkboxem i $HTTP_POST_VARS

Post autor: htmlowiecii »

zamiast
[php]<?php
$HTTP_POST_VARS
?>[/php]
użyj
[php]<?php
$_POST
?>[/php]
wedle nowszych reguł
możesz też 1. dać 1; 2. 2; 3. 4 itd. wtedy po zsumowaniu będziesz mógł określicz co zaznaczył a jak chcesz mnożyć to przypisz kolejne liczby pierwsze(2;3;5;7;11)
Tigerrr
Posty: 4
Rejestracja: pt sty 16, 2009 12:25 am

Re: Problem z niezaznaczonym checkboxem i $HTTP_POST_VARS

Post autor: Tigerrr »

Sporo się nagimnastykowałem ale w końcu wykombinowałem sposób. Jak ktoś sobie życzy to moge przedstawić w wolnej chwili :)

Wcześniej rozmyślałem nad problemem i brałem pod uwagę możliwość którą proponujesz, ale pomysł szybko upadł, ponieważ w moim formularzu występuje blisko 50 checkboxów + od grom innych typu radio itp. Przy takiej ilości danych przemnażanie czy coś w tym stylu nie ma kompletnie sensu. Ale dzięki za odpowiedź oraz na zwrócenie uwagi na zmianę $HTTP_POST_VARS na $_POST
gorylek
Zaczyna działać
Zaczyna działać
Posty: 427
Rejestracja: śr gru 19, 2007 7:29 pm

Re: Problem z niezaznaczonym checkboxem i $HTTP_POST_VARS

Post autor: gorylek »

Jeżeli pola mają nadaną numeryczną nazwę, np pole1, pole2 itp to:

Kod: Zaznacz cały

for($i=1;$i<=100;$i++)
{
    $wynik .= (isset($_POST['pole.'$i])) ? 1." " : 0." ";
}
W tym wypadku przeleci 100 zmiennych tablicy $_POST o indeksach pole1, pole2, pole3... pole50... pole100 itp i za każdym razem do ciągu znaków $wynik doda 1 lub 0 w zależności czy ta jest zaznaczona czy nie.

W praktyce wyglądało by to tak na końcu:

Kod: Zaznacz cały

10001111101001010... (ogólnie 100 znaków)
no i zapisze jako ciąg tak jak tego chciałeś...
ODPOWIEDZ