Autor | Zpráva | ||
---|---|---|---|
lacek Profil |
#1 · Zasláno: 24. 2. 2015, 11:53:04
zdravím Vás,
potřeboval bych prosím pomoct s nastavením šířky sloupce tabulky, pro zobrazení tabulky se využívá script a ie11 ignoruje nastavenou šířku sloupce http://www.gastrosluzby.cz/jidelnicek-zdb/ a zde kód <?php //správné načtení CSV souboru s českými znaky function getCsv($fh, $len=255, $delim=';', $newline="n") { if (!$fh || feof($fh)) return false; $ret = false; $buffer = ''; $inquote = false; while(!feof($fh)) { $s = chop(fgets($fh, $len)); if ($s != '') for ($i=0; $i<strlen($s); $i++) { switch($char = substr($s,$i,1)) { case '"': if (substr($s,$i+1,1) == '"') { $i++; } else { $inquote = !$inquote; continue 2; } break; case $delim: if (!$inquote) { $ret[] = $buffer; $buffer = ''; continue 2; } break; } $buffer .= $char; } if (!$inquote || feof($fh)) { if (!feof($fh)) $ret[] = $buffer; $buffer = ''; break; } else { $buffer .= $newline; } } return $ret; } //*************** $weekday = Date('w'); //NOVINKA ve stredu i podle casu $hodinna = Date("H", Time()); ///////////////////////////////////// // get url $instance =& JURI::getInstance(); $url = JURI::getInstance()->toString(); if ((($weekday >= 3) && ($hodinna >= 15)) ||(($weekday >= 4) ||($weekday == 0) ) ) { //*************** print '<p>přejít na : <a href="'.JRoute::_($url).'#next">jídelní lístek pro následující týden</a></p>'; //*************** } else { } //*************** //cteni csv souboru $fh = fopen("CSV/ZDB.csv","r") or die('err'); ////////vykonna cast programu while(!feof($fh)) { $x = getcsv($fh,999999,';','n'); if ($x) $bunka=$x; } fclose($fh); $oddata = explode ("-", $bunka[0]); $dodata = explode ("-", $bunka[1]); print "<table cellpadding='2'width='900'layout='fixed' >"; print "<th colspan='10'>pro týden od $oddata[2].$oddata[1].$oddata[0] do $dodata[2].$dodata[1].$dodata[0]</th><tr class='tableFrame' bgcolor='#c8c8c8'>"; print "<td>DRUH JÍDLA<br>gramáž<br>zvýhodněná</td><td width='150' align='center'>PONDĚLÍ</td><td width='150' align='center'>ÚTERÝ</td><td width='150' align='center'>STŘEDA</td><td width='150' align='center'>ČTVRTEK</td><td width='150' align='center'>PÁTEK</td><td align='center'>1)SOBOTA<BR>2)NEDĚLE</td>"; print "</tr><tr class='jidel1row'>"; print "<td>POLÉVKY<BR>0,3 l</td><td>$bunka[2]<br><div class='textGreen'>$bunka[3]</div></td><td>$bunka[4]<br><div class='textGreen'>$bunka[5]</div></td><td>$bunka[6]<br><div class='textGreen'>$bunka[7]</div></td><td>$bunka[8]<br><div class='textGreen'>$bunka[9]</div></td><td>$bunka[10]<br><div class='textGreen'>$bunka[11]</div></td><td>$bunka[12]<BR>$bunka[12]</td>"; print "</tr><tr class='jidel2row'>"; print "<td>KLASICKÁ JÍDLA<BR>100 g</td><td>$bunka[14]<br><div class='textBlue'>$bunka[15]</div></td><td>$bunka[16]<br><div class='textBlue'>$bunka[17]</div></td><td>$bunka[18]<br><div class='textBlue'>$bunka[19]</div></td><td>$bunka[20]<br><div class='textBlue'>$bunka[21]</div></td><td>$bunka[22]<br><div class='textBlue'>$bunka[23]</div></td><td>$bunka[24]<BR>$bunka[25]</td>"; print "</tr><tr class='jidel1row'>"; print "<td>VÝBĚROVÁ JÍDLA<BR>120 g</td><td>$bunka[26]</td><td>$bunka[27]</td><td>$bunka[28]</td><td>$bunka[29]</td><td>$bunka[30]</td><td>$bunka[31]<BR>$bunka[32]</td>"; print "</tr><tr class='jidel2row'>"; print "<td>SPECIALITY<BR>150 g</td><td>$bunka[33]</td><td>$bunka[34]</td><td>$bunka[35]</td><td>$bunka[36]</td><td>$bunka[37]</td><td></td>"; print "</tr><tr class='jidel1row'>"; // print "<td>ŽLUČNÍKOVÁ DIETA<BR>80 g</td><td>$bunka[106]<br><div class='textBlue'>$bunka[107]</div></td><td>$bunka[109]<br><div class='textBlue'>$bunka[110]</div></td><td>$bunka[112]<br><div class='textBlue'>$bunka[113]</div></td><td>$bunka[115]<br><div class='textBlue'>$bunka[116]</div></td><td>$bunka[118]<br><div class='textBlue'>$bunka[119]</div></td><td></td>"; //print "</tr><tr class='jidel2row'>"; //print "<td>DIABETICKÁ DIETA<BR>100 g</td><td>$bunka[69]</td><td>$bunka[70]</td><td>$bunka[71]</td><td>$bunka[72]</td><td>$bunka[73]</td><td></td>"; //print "</tr><tr class='jidel2row'>"; print "<td>MOUČNÉ JÍDLO</td><td>$bunka[38]</td><td>$bunka[39]</td><td>$bunka[40]</td><td>$bunka[41]</td><td>$bunka[42]</td><td>$bunka[43]<br>$bunka[44]</td>"; // print "</tr><tr class='jidel1row'>"; // print "<td>ZELENINOVÝ TALÍŘ</td><td>$bunka[141]</td><td>$bunka[143]</td><td>$bunka[145]</td><td>$bunka[147]</td><td>$bunka[149]</td><td></td>"; print "</tr><tr class='jidel2row'>"; print "<td>ZELENINOVÝ TALÍŘ</td><td>$bunka[45]</td><td>$bunka[46]</td><td>$bunka[47]</td><td>$bunka[48]</td><td>$bunka[49]</td><td></td>"; print "</tr><tr class='textBlackMini'>"; // print "<td>KLASICKÉ JÍDLO<BR>2. SMĚNA<BR>100 g</td><td>$bunka[171]</td><td>$bunka[172]</td><td>$bunka[173]</td><td>$bunka[174]</td><td>$bunka[175]</td><td></td>"; // print "</tr><tr class='jidel2row'>"; // print "<td>VÝBĚROVÉ JÍDLO<BR>2. SMĚNA<BR>120 g</td><td>$bunka[176]</td><td>$bunka[177]</td><td>$bunka[178]</td><td>$bunka[179]</td><td>$bunka[180]</td><td></td>"; // print "</tr><tr class='textBlackMini'>"; print "<td colspan='7'>Poznámky k jídelnímu lístku: $bunka[50]</td>"; print "</tr><tr class='textBlackMini'>"; print "<td colspan='7'>Vyhotovil: $bunka[52]</td>"; print "</tr><tr class='textBlackMini'>"; print "<td colspan='7'>Datum: $bunka[51]</td>"; print "</tr></table>"; /////////////////////////////////// //uprava ifu !!!!!!!!!!!!!!!!!!!!!!!!!!!! pridani hodina a weekday >=4 if ((($weekday >= 3) && ($hodinna >= 15)) ||(($weekday >= 4) ||($weekday == 0) ) ) { //*************** print '<a name="next"> </a>'; //*************** //cteni csv souboru $fh = fopen("CSV/ZDB-next.csv","r") or die('err'); ////////vykonna cast programu while(!feof($fh)) { $x = getcsv($fh,999999,';','n'); if ($x) $bunka=$x; } fclose($fh); $oddata = explode ("-", $bunka[0]); $dodata = explode ("-", $bunka[1]); print "<table cellpadding='2' >"; print "<th colspan='10'>pro týden od $oddata[2].$oddata[1].$oddata[0] do $dodata[2].$dodata[1].$dodata[0]</th><tr class='tableFrame' bgcolor='#c8c8c8'>"; print "<td>DRUH JÍDLA<br>gramáž<br>zvýhodněná</td><td width='150' align='center'>PONDĚLÍ</td><td width='150' align='center'>ÚTERÝ</td><td width='160' align='center'>STŘEDA</td><td width='160' align='center'>ČTVRTEK</td><td width='160' align='center'>PÁTEK</td><td align='center'>1)SOBOTA<BR>2)NEDĚLE</td>"; print "</tr><tr class='jidel1row'>"; print "<td>POLÉVKY<BR>0,3 l</td><td>$bunka[2]<br><div class='textGreen'>$bunka[3]</div></td><td>$bunka[4]<br><div class='textGreen'>$bunka[5]</div></td><td>$bunka[6]<br><div class='textGreen'>$bunka[7]</div></td><td>$bunka[8]<br><div class='textGreen'>$bunka[9]</div></td><td>$bunka[10]<br><div class='textGreen'>$bunka[11]</div></td><td>$bunka[12]<BR>$bunka[12]</td>"; print "</tr><tr class='jidel2row'>"; print "<td>KLASICKÁ JÍDLA<BR>100 g</td><td>$bunka[14]<br><div class='textBlue'>$bunka[15]</div></td><td>$bunka[16]<br><div class='textBlue'>$bunka[17]</div></td><td>$bunka[18]<br><div class='textBlue'>$bunka[19]</div></td><td>$bunka[20]<br><div class='textBlue'>$bunka[21]</div></td><td>$bunka[22]<br><div class='textBlue'>$bunka[23]</div></td><td>$bunka[24]<BR>$bunka[25]</td>"; print "</tr><tr class='jidel1row'>"; print "<td>VÝBĚROVÁ JÍDLA<BR>120 g</td><td>$bunka[26]</td><td>$bunka[27]</td><td>$bunka[28]</td><td>$bunka[29]</td><td>$bunka[30]</td><td>$bunka[31]<BR>$bunka[32]</td>"; print "</tr><tr class='jidel2row'>"; print "<td>SPECIALITY<BR>150 g</td><td>$bunka[33]</td><td>$bunka[34]</td><td>$bunka[35]</td><td>$bunka[36]</td><td>$bunka[37]</td><td></td>"; print "</tr><tr class='jidel1row'>"; // print "<td>ŽLUČNÍKOVÁ DIETA<BR>80 g</td><td>$bunka[106]<br><div class='textBlue'>$bunka[107]</div></td><td>$bunka[109]<br><div class='textBlue'>$bunka[110]</div></td><td>$bunka[112]<br><div class='textBlue'>$bunka[113]</div></td><td>$bunka[115]<br><div class='textBlue'>$bunka[116]</div></td><td>$bunka[118]<br><div class='textBlue'>$bunka[119]</div></td><td></td>"; //print "</tr><tr class='jidel2row'>"; //print "<td>DIABETICKÁ DIETA<BR>100 g</td><td>$bunka[69]</td><td>$bunka[70]</td><td>$bunka[71]</td><td>$bunka[72]</td><td>$bunka[73]</td><td></td>"; //print "</tr><tr class='jidel2row'>"; print "<td>MOUČNÉ JÍDLO</td><td>$bunka[38]</td><td>$bunka[39]</td><td>$bunka[40]</td><td>$bunka[41]</td><td>$bunka[42]</td><td>$bunka[43]<br>$bunka[44]</td>"; // print "</tr><tr class='jidel1row'>"; // print "<td>ZELENINOVÝ TALÍŘ</td><td>$bunka[141]</td><td>$bunka[143]</td><td>$bunka[145]</td><td>$bunka[147]</td><td>$bunka[149]</td><td></td>"; print "</tr><tr class='jidel2row'>"; print "<td>ZELENINOVÝ TALÍŘ</td><td>$bunka[45]</td><td>$bunka[46]</td><td>$bunka[47]</td><td>$bunka[48]</td><td>$bunka[49]</td><td></td>"; print "</tr><tr class='textBlackMini'>"; // print "<td>KLASICKÉ JÍDLO<BR>2. SMĚNA<BR>100 g</td><td>$bunka[171]</td><td>$bunka[172]</td><td>$bunka[173]</td><td>$bunka[174]</td><td>$bunka[175]</td><td></td>"; // print "</tr><tr class='jidel2row'>"; // print "<td>VÝBĚROVÉ JÍDLO<BR>2. SMĚNA<BR>120 g</td><td>$bunka[176]</td><td>$bunka[177]</td><td>$bunka[178]</td><td>$bunka[179]</td><td>$bunka[180]</td><td></td>"; // print "</tr><tr class='textBlackMini'>"; print "<td colspan='7'>Poznámky k jídelnímu lístku: $bunka[50]</td>"; print "</tr><tr class='textBlackMini'>"; print "<td colspan='7'>Vyhotovil: $bunka[52]</td>"; print "</tr><tr class='textBlackMini'>"; print "<td colspan='7'>Datum: $bunka[51]</td>"; print "</tr></table>"; /////////////////////////////////// } ?> děkuji |
||
Tomáš123 Profil |
#2 · Zasláno: 25. 2. 2015, 13:35:49
lacek:
Kód, ktorý si sem dal, je nanič. Trochu so hľadal príčinu tvojho problému a vyplynulo, že problém nie je v tom, že IE nerešpektuje stanovenú šírku stĺpca, ale v tom, že nezalamuje riadky v bunkách nižšie. To stĺpec roztiahne a spôsobuje popísaný problém. Príčina by teoreticky mohla byť v pixelovom nastavení veľkosti písma. Toto podozrenie sa ale nepotvrdilo, nehovoriac o tom, že problémy s absolútnymi jednotkami veľkostí písma už v novších IE nepretrvávajú. Možno to naberie nový smer a možno niekto dokáže odhaliť príčinu problému zalomenia riadku. |
||
Davex Profil |
#3 · Zasláno: 25. 2. 2015, 19:42:28
lacek:
Souhlasím s Tomášem123. Problém bude asi tom, že Explorer neochotně zalamuje před delší skupinou slov, které jsou oddělené pouze čárkou bez mezery a ty se pak nevejdou na požadovanou šířku sloupce. IE se potom snaží šířku sloupců optimálně rozložit, aby obsah nepřesahoval. Zkus přidat za všechny čárky mezeru, aby se text zalamoval. Kromě toho to nevypadá, že by HTML atribut layout='fixed' měl nějaký vliv na zobrazení a ve specifikacích HTML 4.01 a HTML 5 jsem ho nenašel, takže není jasné, co by měl přesně dělat. Nechtěl jsi raději použít CSS vlastnost table-layout ?
Pak už je tam jenom taková drobnost, kdy první řádek je roztažený přes víc sloupců než obsahuje zbytek tabulky. |
||
lacek Profil |
#4 · Zasláno: 26. 2. 2015, 07:45:34
děkuji Vám oběma
to dravex: CSS vlastnost table-layout jsem tam pak dal ale bez výsledju....... print "<table cellpadding='2'width='900'table-layout='fixed' >"; print "<th colspan='7'>pro týden od $oddata[2].$oddata[1].$oddata[0] taky jsem už vzkazoval těm, kteří píší jídelníčky ať mezi slovy vkládají mezery jinak díky za počet sloupců :) tak nevím co dál |
||
juriad Profil |
#5 · Zasláno: 26. 2. 2015, 08:58:04
table-layout je CSS vlastnost, nikoli atribut elementu table:
print "<table cellpadding='2' width='900' style='table-layout: fixed' >"; print "<table cellpadding='2' width='900' style='table-layout: fixed; word-wrap: break-word' >"; Nebo bys mohl chtít text opravit v PHP (nahradit každou čárku za čárku následovanou mezerou): print str_replace(',', ', ', $text); |
||
Bubák Profil |
#6 · Zasláno: 26. 2. 2015, 10:05:32
juriad:
„nahradit každou čárku za čárku následovanou mezerou“ Pokud v textu nejsou desetinná čísla, jinak by funkce musela být složitější. |
||
lacek Profil |
#7 · Zasláno: 26. 2. 2015, 12:41:41
děkuji juriade,
pomohla mi tvoje rada s print "<table cellpadding='2' width='900' style='table-layout: fixed; word-wrap: break-word' >"; premává :) |
||
Časová prodleva: 9 let
|
0