Strona 1 z 1

Problem z niezaznaczonym checkboxem i $HTTP_POST_VARS

: pt sty 16, 2009 12:39 am
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.

Re: Problem z niezaznaczonym checkboxem i $HTTP_POST_VARS

: pt sty 16, 2009 12:50 pm
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)

Re: Problem z niezaznaczonym checkboxem i $HTTP_POST_VARS

: pt sty 16, 2009 7:21 pm
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

Re: Problem z niezaznaczonym checkboxem i $HTTP_POST_VARS

: sob sty 17, 2009 1:27 pm
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ś...