Autor Zpráva
tozi
Profil

Ahojte,
pracujem na malom objednávacom formulári. Problém nastal keď potrebujem pre rôzne typy produktu  vypísať rôzne pole.

Pre ukážku mám tieto polia, potrebujem pre každú položku (v zaluzie) vypísať iné pole s rôznymi farbami. Je niečo také možné? ak áno viete poradiť? 
'zaluzie' => array(
'Vyber typ žalúzie',
'VONKAJŠIE ŽALÚZIE S-90',
'VONKAJŠIE ŽALÚZIE Z-90',
'VONKAJŠIE ŽALÚZIE Z-70',
'VONKAJŠIE ŽALÚZIE C-80',
'VONKAJŠIE ŽALÚZIE C-65',
'VONKAJŠIE ŽALÚZIE C-80S',
'VONKAJŠIE ŽALÚZIE F-80',
'VONKAJŠIE ŽALÚZIE E-50K',
'VONKAJŠIE ŽALÚZIE E-50M',
'FASÁDNE ŽALÚZIE C-65F',
'FASÁDNE ŽALÚZIE C-80F',
'FASÁDNE ŽALÚZIE Z-70F',
'FASÁDNE ŽALÚZIE Z-90F',
),
'farby' => array(
'Vyber farbu',
'010 Biela',
'071 Hnedá',
'110 Šedobéžová',
'130 Šedá',
'140 Strieborná',
'140H Strieborná',
'220 Zelená',
'240 Svetlo béžová',
'330 Červená – purpurová',
'502 Modrá – námornícka',
'514 Modrá – holubia',
'716 Antracitová šedá',
'721 Čiernošedá',
'735 Svetlo šedá',
'737 Prachovo šedá',
'780 Bronzová',
'907 Strieborná – šedá',
'910 Biela',
'130 Šedá',
'908 Bronzová tmavá'
),

'farby_b' => array(
'Vyber farbu',
'010 Biela',
'071 Hnedá',
'110 Šedobéžová',
'130 Šedá',
'140 Strieborná',
'140H Strieborná',
'220 Zelená',
'240 Svetlo béžová',
'330 Červená – purpurová',
'502 Modrá – námornícka',


));
v html to vyzerá následovne
<select name="typ_zaluzie">
  <?php 
  $i = 1;
  foreach ($options['zaluzie'] as $zaluzia) {
   echo '<option value="'.$i.'">'.$zaluzia.'</option>';
   $i++;
  }
  ?>
  </select>
Borius
Profil
tozi:
Samozřejmě to takto možné je. :-)
Podobným způsobem, jak jsi vytvořil první selekt, můžeš vytvořit i selekt pro barvy:
print $barby[0];
print '<select name="farba">';
for ($j=1;$j<count($farby);$j++){
  echo '<option value="',$j,'">',$farby[$j],'</option>';
}
print '</select>';
V případě potřeby nahraď ‘$farby’ za ‘$farby_b’ nebo cokoli jiného. Nejlépe použít k tomu další proměnnou, která určí závislost seznamu barev na daném produktu.
Bylo by ještě fajn podbarvit každou položku option i odpovídající barvou.
Pozn.: Nenazýval bych to zrovna vnořeným polem. ;-)
tozi
Profil
Diky. No zle som napísal názov, už viem že je to viacrozmerné pole. Som začiatočník a učím sa. Tak chybička sa stane. :)
Samozrejme podfarbenie bude. No zatiaľ bojujem z poliami. :)

Dalo by sa nejaké vysvetlenie k tvojmu zápisu? čo prečo ako? :)
Borius
Profil
tozi:
Ani vícerozměrným polem bych to nenazýval. ;-) Tak, jak jsi je vytvořil, jsou to dvě (resp. tři) jednorozměrná pole.
Vysvětlení? Použil jsem tentýž postup jako Ty, akorád jsem dal přednost cyklu ‘for’ před cyklem ‘foreach’. Přijde mi to vhodnější, ačkoli vpodstatě je to jedno.
print $barby[0];//Napíše “Vyber barvu”
print '<select name="farba">';//Otevírající tag ‘select’
for ($j=1;$j<count($farby);$j++){//Postupné procházení všech položek pole (čiže všech barev)
  echo '<option value="',$j,'">',$farby[$j],'</option>';//Tag ‘option’ s hodnotou a textem, např. ‘<option value="5">140 Strieborná</option>’
}
print '</select>';//Uzavírající tag ‘select’

Ještě jeden postřeh. Texty jako “Vyber typ žalúzie” a “Vyber farbu” bych osobně nedával jako jednu položku z těch polí, ale samostatně, třeba jako (když už se učíš ta pole) jako pole s použitým slovníkem, tedy
$slovnik=array(
  'zaluzie'=>'Vyber typ žalúzie'
  'farby'=>'vyber farbu',
);
Budeš to pak mít sémanticky přehlednější.
Ale není to nezbytné, jen Ti to může zpřehlednit kód (za dva měsíce budeš dumat, proč jsi první položku takto vyčlenil) a v budoucnu zjednodušit správu.
tozi
Profil
Borius ďakujem za tak širšie vysvetlenie. Zas mám trocha času popri práci a tak sa pozriem na tie polia lepšie. Tvoje vysvetlenie mi určite pomôže.

Ešte raz vďaka.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: