Heh mój pierwszy post na tym forum. Przeważnie mi google wystarczało ale mam klina chyba tym razem.
Do rzeczy:
Form z inputami dosyć duży poprzez Post. Nie widze drobnego szczegółu... Albo czegoś nie rozumiem. Interesuje mnie pobieranie z checkbox poprzez metodę POST w formie tablic z zapisem końca członu [] co ma zwracać jako tablicę (raz się udaje a raz nie), ciekawi mnie fakt czemu za pierwszym raz się nie udaje...
<tr> <td style="text-align: left; padding: 5px 0px 2px 0px;"> <script type="text/javascript"> function unselect_promo() { u=document.getElementById("uns"); if(u.checked==true){ var list=document.getElementsByName("promotion_c[]"); list[0].checked = false; list[1].checked = false; list[2].checked = false; list[3].checked = false; list[4].checked = true; u.checked=false; } } </script> <input type="checkbox" name="apromotion_c[]" value="ukry1"> <input type="checkbox" name="apromotion_c[]" value="ukry2"> </td> </tr>
Nic specjalnego. Nie działają <input type="checkbox" name="promotion_c[]">
Ta tablica niby jest stringiem gdy zrobie var_dump:
["promotion_c"]=> string(5) "Array" ["apromotion_c"]=> array(2) { [0]=> string(5) "ukry1" [1]=> string(5) "ukry2" }
Kod z html jest wykonaniem takiego kodu php:
function form_multi_checkbox($caption,$field_name,$values,$edit) { $field_name.="[]";//pobieramy jako tablice if($edit==false){$zab=' disabled';}else{$zab='';} $list = '<tr><td style="width: 15px; text-align: center; vertical-align: top;"> </td><td style="text-align: left; padding: 5px 0px 2px 0px;"><span class="NORMAL_TEXT"> '.$caption.'</span><br />'; $count=0; for($i=0;$i<$c;$i++) { if(in_array($val[$i],$values)){$selected=' checked';$count++;$on_off='on';}else{$on_off='off';$selected='';} if($edit==true) { if($count==0 && $i==4){$list.='<input type="checkbox" name="'.$field_name.'" value="'.$val[$i].'" '.$zab.' selected/><span class="NORMAL_TEXT"> '.$val_h[$i].'</span><br />';} else {$list.='<input type="checkbox" name="'.$field_name.'" value="'.$val[$i].'" '.$zab.$selected.'/><span class="NORMAL_TEXT"> '.$val_h[$i].'</span><br />';} } else { if($count==0 && $i==4){$list.='<img src="layout/checkbox_off.gif"><span class="NORMAL_TEXT"> '.$val_h[$i].'</span><br />';} else {$list.='<img src="layout/checkbox_'.$on_off.'.gif"><span class="NORMAL_TEXT"> '.$val_h[$i].'</span><br />';} } } if($edit==false){$list.='<img src="layout/checkbox_off.gif"><span class="NORMAL_TEXT"> Nieaktywne</span>';}else{$list.='<input type="checkbox" id="uns" name="unselect" value="unselect" onclick="java script: unselect_promo();"/><span class="NORMAL_TEXT"> Skasuj wszystkie promocje</span>';} $list.= '<script type="text/javascript"> function unselect_promo() { u=document.getElementById("uns"); if(u.checked==true){ var list=document.getElementsByName("'.$field_name.'"); list[0].checked = false; list[1].checked = false; list[2].checked = false; list[3].checked = false; list[4].checked = true; u.checked=false; } } </script> <input type="checkbox" name="a'.$field_name.'" value="ukry1"/> <input type="checkbox" name="a'.$field_name.'" value="ukry2"/> </td></tr>'; return $list; }
Pytanie czemu czeckbox'y o nazwie promotion_c dają mi string o nazwie Array a nie typ array z danymi jak w przypadku apromotion_c??
Ja nie wiem... Już któraś godzina leci a ja ciągle nie widzę.
pozdrawiam
