Autor | Zpráva | ||
---|---|---|---|
PetraPP Profil |
Opět bych potřebovala výpomoci s výpisem. Bohužel si nevím rady, jak bych do tohoto HTML napasovala IF(), abych při výpisu dat přes FOREACH() dostávala tento HTML kód:
<div class="portal-img"> <div class="row"> <div class="pismeno"><p>A</p></div> <div class="vypis"> <div class="img"><img src="#"></div> <div class="img"><img src="#"></div> <div class="img"><img src="#"></div> </div> </div> </div> <div class="portal-img"> <div class="row"> <div class="pismeno"><p>B</p></div> <div class="vypis"> <div class="img"><img src="#"></div> <div class="img"><img src="#"></div> <div class="img"><img src="#"></div> </div> </div> </div> <div class="portal-img"> <div class="row"> <div class="pismeno"><p>C</p></div> <div class="vypis"> <div class="img"><img src="#"></div> <div class="img"><img src="#"></div> <div class="img"><img src="#"></div> </div> </div> </div> |
||
Taps Profil |
#2 · Zasláno: 9. 11. 2014, 15:53:08
|
||
PetraPP Profil |
#3 · Zasláno: 9. 11. 2014, 15:59:09
Toto jsem již zkusila, ale výsledek je hrozný :)
$pamet = ''; $obsah = array(); foreach ($vypis_portalu as $portal) { $pismeno = substr($portal[3], 1,1); $obsah[$pismeno] .= '<div class="img"><img src="#"></a></div>'; if ($pismeno != $pamet) { $pamet = $pismeno; echo '<div class="portal-img"> <div class="row"> <div class="pismeno"><p>'.strtoupper($pamet).'</p></div> <div class="vypis"> '.$obsah[$pamet].' </div> </div> </div> </div>'; } } |
||
mimochodec Profil |
#4 · Zasláno: 9. 11. 2014, 16:50:58
PetraPP:
„Toto jsem již zkusila, ale výsledek je hrozný“ To znamená co? Mimochodem ten příklad jsi zřejmě nepochopila a špatně opsala. V tom if nemá být všechno, ale jen to písmeno (které se neshoduje s tím písmenem z minulého průchodu cyklu). |
||
PetraPP Profil |
Na počátku výpis chápu:
foreach ($vypis_portalu as $portal) { $pismeno = substr($portal[3], 1,1); if ($pismeno != $pamet) { $pamet = $pismeno; echo ' <div class="portal-img col-xs-18"> <div class="row"> <div class="col-xs-18 col-sm-5 col-md-4 col-lg-3" > <p id="portal-'.$pamet.'" class="letter">'.strtoupper($pamet).'</p> </div> <div class=" col-xs-18 col-sm-13 col-md-14 col-lg-15"> '; } Ale když už výpis pro písmeno skončí tak jak mohu vložit toto?: </div> </div> </div> Vůbec nevím, jak to přes IF řešit :( |
||
mimochodec Profil |
#6 · Zasláno: 9. 11. 2014, 20:36:08
PetraPP:
Funguje to takto: pro každý "výrobek" (ať je to co chce) vyhodnotíš, jestli se jeho první písmeno shoduje s prvním písmenem toho minulého výrobku. To si pamatuješ v nějaké proměnné. Když se písmeno současné rovná tomu minulému, tak nic. Když se nerovná, vypíšeš něco jako <h3>$novepismeno</h3> .
|
||
PetraPP Profil |
#7 · Zasláno: 9. 11. 2014, 20:44:11
Jasný, tohle chápu, ale mě jde o to, že když už se písmeno A=A ... tak k tomu vypisuji Amerika, Antik, Afrika ... a jakmile je výpis ukonce, potřebuji vypsat 3x </div> Bohužel nevím, jak vypsat právě ty tři </div>
|
||
mimochodec Profil |
#8 · Zasláno: 9. 11. 2014, 20:53:17
PetraPP:
Já myslím, že pořád nechápeš. V tom kódu vypisuješ nějaké divy, neuzavíráš je a řešíš, jak si pamatovat jejich počet. To je nesmysl. Při každém průchodu každou tu jednotlivou položku začni a uzavři. V případě, že vkládáš nadpis sekce, začni ho a uzavři. |
||
PetraPP Profil |
#9 · Zasláno: 9. 11. 2014, 20:57:27
Asi se nechápeme navzájem. Promiň, jsem taková tvrdohlavá. Nemohl bys mě radši pro mou tvrdou palici vytvořit PHP script, který provede výpis a udělá výpis HTML:
<div class="portal-img"> <div class="row"> <div class="pismeno"><p>A</p></div> <div class="vypis"> <div class="img"><img src="#"></div> <div class="img"><img src="#"></div> <div class="img"><img src="#"></div> </div> </div> </div> <div class="portal-img"> <div class="row"> <div class="pismeno"><p>B</p></div> <div class="vypis"> <div class="img"><img src="obr_1.jpg"></div> <div class="img"><img src="obr_2.jpg"></div> <div class="img"><img src="obr_3.jpg"></div> </div> </div> </div> <div class="portal-img"> <div class="row"> <div class="pismeno"><p>C</p></div> <div class="vypis"> <div class="img"><img src="obr_4.jpg"></div> <div class="img"><img src="obr_5.jpg"></div> </div> </div> </div> |
||
mimochodec Profil |
V principu nějak takhle. Nevím, jestli tam všechny proměnné souhlasí. Nechápu, proč tam máš substr($portal[3], 1,1).
$pamet = ""; foreach ($vypis_portalu as $portal) { $pismeno = substr($portal,0,1); if ($pismeno != $pamet) { echo '<div class="portal-img"> <div class="row"> <div class="pismeno"><p>'.strtoupper($pamet).'</p></div>'; } echo '<div class="vypis"><div class="img"><img src="#">'.$portal.'</div></div>'; if ($pismeno != $pamet) { echo '</div> </div> </div>'; } $pamet = $pismeno; } |
||
PetraPP Profil |
#11 · Zasláno: 9. 11. 2014, 21:22:57
Bohužel :(
Vypíše to dřív <div class="img"> a pak až to vypíše písmeno A. |
||
mimochodec Profil |
#12 · Zasláno: 9. 11. 2014, 21:32:27
Opraveno. Myslím, že k pochopení by to mohlo stačit.
|
||
PetraPP Profil |
#13 · Zasláno: 9. 11. 2014, 21:42:29
Teď to zase písmeno vynechá, nevypíše se
<div class="pismeno"><p></p></div>
|
||
PetraPP Profil |
Omlouvám se, ale prostě ne a ne ... nefunguje to :( Moc vás prosím, pomozte, já si už fakt nevím rady :(
Script, který napsal mimochodec je funkční jen do té doby, pokud je výpis echo '<div class="vypis"><div class="img"><img src="#">'.$portal.'</div></div>'; pouze 1x. Pokud je tam více výpisů, tak už to nefunguje a vypíše to hned 3x </div> ....
<div class="vypis"><div class="img"><img src="#">1</div></div> </div> </div> </div> <div class="vypis"><div class="img"><img src="#">2</div></div> <div class="vypis"><div class="img"><img src="#">3</div></div> <div class="vypis"><div class="img"><img src="#">4</div></div> |
||
abc Profil |
#15 · Zasláno: 11. 11. 2014, 00:33:31
Jak vypadá to zdrojové pole? Jsou tam nějaké obrázky, které se mění, tak by mě zajímalo, kde se berou..
Pokud by to byly 2 pole, tak třeba takto: (nějak se mi rozbilo formátování, pardon) $source = ["A", "B", "C"]; $images = [ "A" => [1, 2, 3], "B" => [4, 5, 6], "C" => [7, 8], ]; foreach ($source as $value){ echo '<div class="portal-img"> <div class="row"> <div class="pismeno"><p>'; echo $value; echo '</p></div> <div class="vypis">'; foreach ($images[$value] as $img){ echo '<div class="img">'; echo $img; echo '</div>'; } echo '</div> </div> </div>'; } |
||
Časová prodleva: 9 let
|
0