checkbox i value z mysql

0

Pobrałem dane z mysql i wrzuciłem do checkbox i teraz chcę policzyć zaznaczenia i wyświetlić zaznaczone checkboxy
ale nie pobiera mi wartości value

Mam coś takiego

<form enctype="multipart/form-data" name="news" method="post" action="<?=$_SERVER['PHP_SELF'];?>">
  <input type="checkbox" name="formDoor[]" value="A" />ch1<br />
<input type="checkbox" name="formDoor[]" value="B" />ch2<br />
<input type="checkbox" name="formDoor[]" value="C" />ch3<br />
<input type="checkbox" name="formDoor[]" value="D" />ch4<br />
<input type="checkbox" name="formDoor[]" value="<?php $memberid; ?>" />ch5<br/>
 <input type="submit" value="Zatwierdź">
 </form>


sprawdzam zaznaczone
 $aDoor = $_POST['formDoor'];
  if(empty($aDoor))
  {
    echo("You didn't select any buildings.");
  }
  else
  {
    $N = count($aDoor);
    echo("You selected $N door(s): ");
    for($i=0; $i < $N; $i++)
    {
      echo($aDoor[$i] . " member");
    }
  }


 

i działa od ch1-ch4, ale value z ch5 nie pobiera
dlaczego?

1

A skąd my mamy wiedzieć po tym kawałku kodu dlaczego zmienna $memberid jest pusta?
Sprawdź sobie źródło strony, to ujrzysz value="" - potem cofnij się w kodzie kawałek do momentu, w którym teoretycznie wypełniasz $memberid wartością i przemyśl dlaczego jest pusta.

0

znalazłem

value="<?php $memberid; ?>" 

value ma być bez "" czyli

value=<?php $memberid; ?> 
0

yyy, czyli że co? Twoja zmienna zawierała w sobie cudzysłowy, w efekcie generował się niepoprawny html, czy jak?

btw, to: action="<?=$_SERVER['PHP_SELF'];?>" - to jest dziura (xss). w $_SERVER['PHP_SELF'] może znaleźć się cokolwiek, więc można tam zamknąć formę, wstawić przekierowania, skrypty, itd. i tak spreparowany link komuś wysłać.

0
dzek69 napisał(a):

yyy, czyli że co? Twoja zmienna zawierała w sobie cudzysłowy, w efekcie generował się niepoprawny html, czy jak?

btw, to: action="<?=$_SERVER['PHP_SELF'];?>" - to jest dziura (xss). w $_SERVER['PHP_SELF'] może znaleźć się cokolwiek, więc można tam zamknąć formę, wstawić przekierowania, skrypty, itd. i tak spreparowany link komuś wysłać.

<input type="checkbox" name="formDoor[]" value="<?php $memberid; ?>" />ch5<br/>
 

błąd był w

value="<?php $memberid; ?>" />ch5 

dałem teraz bez '/' czyli

value="<?php $memberid; ?>" >ch5 

i też działa a z '/' działa bez cudzysłowy

$_SERVER['PHP_SELF'] - to jak przeładować stronę żeby odczytać dane z forms?

1

aj, źle doczytałem. PHP_SELF jest ok, myślałem, że masz tam REQUEST_URI

Ale generalnie action może zostać pusty (to jest niepoprawne dla HTML5, ale zadziała), albo jeżeli nie przesyłasz żadnych zmiennych w GET - można wpisać pytajnik. No ale jak mówiłem PHP_SELF nie sprawi problemów.

Co do tego z $memberid --- co dokładnie zawiera zmienna? Zrób gdzieś poza inputem <?php var_dump($memberid); ?> -- jeżeli masz takie problemy jak mówisz - coś jest nie tak z zawartością zmiennej - pokaż co Ci zwróci var_dump i pokaż też fragment kodu, w którym przypisujesz dane do tej zmiennej.

PS. Ja idę spać, więc jak coś to odpiszę rano.

0
<?php
echo var_dump($memberid);
?> 

dało string(1)

a to moj fragment kodu

<?php 
mysql_query('SET NAMES utf8');
mysql_query('SET NAMES utf8 COLLLATE utf8_general_ci;');
$sql = ("SELECT member_id FROM members WHERE komisja1 = '1'");
$kom= mysql_query($sql);

while ($wynik = mysql_fetch_array($kom)) {
$memberid = $wynik['member_id'];
?>
<input type="checkbox" name="fkomisja[]" value= "<?php echo $memberid; ?>" checked ><?php echo $memberid; ?><br />
<?php
echo var_dump($memberid);
?>
<?php
}
?> 
0

No wg tego kodu powinno być wszystko ok w momencie jak będzie na końcu ukośnik samozamykający <input />. Jak definiujesz atrybut checked to najlepiej, żeby posiadał wartość checked czyli <input checked="checked" />.
Jeżeli możesz - wróć tam ten ukośnik i pokaż kod html zwrócony przez skrypt (czyli z podglądu źródła przekopiuj nic nie zmieniając). Jeżeli var_dump pokazało string o długości 1 to ja nie widzę powodu, żeby tu się miało coś psuć (zakładam, że id są liczbami - ciężko żeby były znakami specjalnymi).

0
<input type="checkbox" name="fkomisja[]" value= "1" checked="checked" />1<br />

<input type="checkbox" name="fkomisja[]" value= "2" checked="checked" />2<br />

<input type="checkbox" name="fkomisja[]" value= "4" checked="checked" />4<br />

<input type="checkbox" name="fkomisja[]" value= "6" checked="checked" />6<br />

<input type="checkbox" name="fkomisja[]" value= "9" checked="checked" />9<br />

<input type="checkbox" name="fkomisja[]" value= "10" checked="checked" />10<br />

<input type="checkbox" name="fkomisja[]" value= "20" checked="checked" />20<br /> 

teraz zadziałało
no i konsternacja, bo już nie wiem co było problemem, że wcześniej nie chciało

0

Nie wiem, ale wcześniej był jakiś przykład z inputami formDoor, teraz jest ciut inny, z fkomisja

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