Autor Zpráva
Tomashekk
Profil
Prosím, potřeboval bych poradit jak opravit toto:


 <?php  echo "<div style='margin: 5px; float: left; text-align: center;'>";   
	echo "<div style='width: 130px; height: 100px; padding: 15px;'>";   
	  echo "<a href='?page=admin/index&admin=topic&co=upd&ID=".$radek['ID']."'><img src='image/topic/".$radek['img']."' title='".$radek['name_cs']."' alt='".$radek['name_cs']."' /></a>";   
	echo "</div>";   
	echo "<div style='width:140px; background: #000; color: #FFF; text-align: center;' title='".$radek['name_cs']."'>".$radek['name_cs']."</div>";   
  echo "</div>";
 ?>
panther
Profil
Tomashekk:
problém se eivdentně týká CSS, a přesto sem dáš kus PHP kódu (kdybys sem dal aspoň to finální HTML, které dostane prohlížeč).

Pátému, devátému, třináctému, … přidej „clear: left“. Pohledej modulo.
Tomashekk
Profil
panther:
počkej a nejde to udělat nějak tak abych to nemusel dělat ručně? aby to sám rozpoznal?

HTML (ale děsnej)
<div style='width: 130px; clear:both; height: 100px; padding: 15px;'><a href='?page=admin/index&admin=topic&co=upd&ID=30'><img src='image/topic/5AV_veterina.gif' title='Veterina' alt='Veterina' /></a></div><div style='width:140px; background: #000; color: #FFF; text-align: center;' title='Veterina'>Veterina</div></div><div style='margin: 5px; float: left; text-align: center;'><div style='width: 130px; clear:both; height: 100px; padding: 15px;'><a href='?page=admin/index&admin=topic&co=upd&ID=31'><img src='image/topic/5AV_veterina_de.gif' title='TIERARZT' alt='TIERARZT' /></a></div><div style='width:140px; background: #000; color: #FFF; text-align: center;' title='TIERARZT'>TIERARZT</div></div><div style='margin: 5px; float: left; text-align: center;'><div style='width: 130px; clear:both; height: 100px; padding: 15px;'><a href='?page=admin/index&admin=topic&co=upd&ID=32'><img src='image/topic/5AV_rady_a_tipy.gif' title='Rady a tipy čtenářů' alt='Rady a tipy čtenářů' /></a></div><div style='width:140px; background: #000; color: #FFF; text-align: center;' title='Rady a tipy čtenářů'>Rady a tipy čtenářů</div></div><div style='margin: 5px; float: left; text-align: center;'><div style='width: 130px; clear:both; height: 100px; padding: 15px;'><a href='?page=admin/index&admin=topic&co=upd&ID=33'><img src='image/topic/5AV_rady_a_tipy_de.gif' title='WIR HELFEN UNS' alt='WIR HELFEN UNS' /></a></div><div style='width:140px; background: #000; color: #FFF; text-align: center;' title='WIR HELFEN UNS'>WIR HELFEN UNS</div>
panther
Profil
Tomashekk:
a nejde to udělat nějak tak abych to nemusel dělat ručně?
ano, jde. Čti pořádně, co píšu.
Tomashekk
Profil
panther:
Pátému, devátému, třináctému, … přidej ‚clear: left‘
takhle bych to musel dělat ručně jelikož když přidám další a bude mít delší text, tak musím zase růčo dát ten za ním

Pohledej modulo
to je co? - už vím, ale nechápu jak mi to pomůže
xmark
Profil
Tomashekk:
Proč z divů skládáš tabulku? Znáš <table>?
Tomashekk
Profil
xmark:
znám, ale přiznám se, že nevím jak udělat v cyklu aby když udělá 4 sloupce aby začal další řádek
xmark
Profil
Tomashekk:
Počítej vygenerované <td>. Za každou buňkou přičti k něčemu jedničku a až budeš mít 4, ukonči řádek, začni nový a proměnnou vynuluj.
Tomashekk
Profil
xmark:
takže nějak takto?
<?php 
for($x=1,$x==4,$x++)
{
	if($x<4) {echo "<td></td>"; }else {   echo "<td></td></tr>"; $x = 1; }
}

?>
panther
Profil
Tomashekk:
nechápu jak mi to pomůže
předpokládám, že to celé vypisuješ z DB nějakým cyklem.

Nějak takto (dal jsem za každý 4. <br>, šla by přidet jen do style <div>u tato vlastnost):
$i = 1;
while (…) {
  echo '…';
  if ($i % 4 == 0) echo '<br style="clear: both;">';
  $i++;
}

xmark:
Proč z divů skládáš tabulku?
řekl bych, že toto klasická tabulka nebude, působí to na mě spíš jako menu nebo nějaký seznam čehosi, co na obrázku není moc vidět, je malý.
Tomashekk
Profil
panther:
je to seznam témat...
panther
Profil
Tomashekk:
je to seznam témat…
tím spíše ne sada divů, ale seznam <ul> a každé téma do <li>.

Princip, jak použít modulo, je stejný, jako jsem uvedl výše.
Tomashekk
Profil
panther:
$i = 0;
while (…) {
echo '…';
if ($i % 4 == 1) echo '<br style="clear: both;">';
$i++;
}

ok a do while si dám co?tam bude v mém případě asi $radek = mysql_fetch_array($vysledek)
takže celé by to vypadalo takto?

$i = 0; while ($radek = mysql_fetch_array($vysledek)) //Načte výsledný řádek do asociativního pole  
  { 
  echo "<div style='margin: 5px; float: left; text-align: center;'>";   
	echo "<div style='width: 130px; height: 100px; padding: 15px;'>";   
	  echo "<a href='?page=admin/index&admin=topic&co=upd&ID=".$radek['ID']."'><img src='image/topic/".$radek['img']."' title='".$radek['name_cs']."' alt='".$radek['name_cs']."' /></a>";   
	echo "</div>";   
	echo "<div style='width:140px; background: #000; color: #FFF; text-align: center;' title='".$radek['name_cs']."'>".$radek['name_cs']."</div>";   
  echo "</div>";
   if ($i % 4 == 1) echo '<br style="clear: both;">';
  $i++;

  } 


Toto mi to celé spraví, jen udělá to samé po prvních dvou výpisech, ale pak to jede už správně
panther
Profil
Tomashekk:
$i = 1; while ($radek = mysql_fetch_array($vysledek)) //Načte výsledný řádek do asociativního pole  
  { 
  echo "<div style='margin: 5px; float: left; text-align: center;'>";   
    echo "<div style='width: 130px; height: 100px; padding: 15px;'>";   
      echo "<a href='?page=admin/index&admin=topic&co=upd&ID=".$radek['ID']."'><img src='image/topic/".$radek['img']."' title='".$radek['name_cs']."' alt='".$radek['name_cs']."' /></a>";   
    echo "</div>";   
    echo "<div style='width:140px; background: #000; color: #FFF; text-align: center;' title='".$radek['name_cs']."'>".$radek['name_cs']."</div>";   
  echo "</div>";
   if ($i % 4 == 0) echo '<br style="clear: both;">';
  $i++;

  }
takhle by to mělo být, pokud se nepletu.
Tomashekk
Profil
panther:
jj, takhle to jde.. takže co to dělá?
v ifu to zjistí zda je zbytek po dělení $i / 4 nula a když ano, tak to odřádkuje s clearem?
panther
Profil
Tomashekk:
takže co to dělá?
vypíše to floatovaný div, na konci přičte jedničku do proměnné $i. Po každém 4. průchodu se přidá cleaner, a pokud víš, jak clear funguje, mělo by to být jasné. Pokud ne, doporučuji nastudovat.

Druhá, a mo6n8 trochu hezčí možnost, je tahle:
$i = 1; while ($radek = mysql_fetch_array($vysledek)) //Načte výsledný řádek do asociativního pole  
  { 
  echo "<div style='margin: 5px; float: left; text-align: center; ". ($i % 4 == 1 ? 'clear: left;' : "") ."'>";   
    echo "<div style='width: 130px; height: 100px; padding: 15px;'>";   
      echo "<a href='?page=admin/index&admin=topic&co=upd&ID=".$radek['ID']."'><img src='image/topic/".$radek['img']."' title='".$radek['name_cs']."' alt='".$radek['name_cs']."' /></a>";   
    echo "</div>";   
    echo "<div style='width:140px; background: #000; color: #FFF; text-align: center;' title='".$radek['name_cs']."'>".$radek['name_cs']."</div>";   
  echo "</div>";
  
  $i++;

  }


A nejlépe seznamem, jak jsem říkal:
echo '<ul>'; //podmínka, jestli je alespoň jeden záznam
$i = 1; while ($radek = mysql_fetch_array($vysledek)) //Načte výsledný řádek do asociativního pole  
  { 
  echo "<li style='margin: 5px; float: left; text-align: center; ". ($i % 4 == 1 ? 'clear: left;' : "") ."'>";   
    echo "<div style='width: 130px; height: 100px; padding: 15px;'>";   
      echo "<a href='?page=admin/index&admin=topic&co=upd&ID=".$radek['ID']."'><img src='image/topic/".$radek['img']."' title='".$radek['name_cs']."' alt='".$radek['name_cs']."' /></a>";   
    echo "</div>";   
    echo "<div style='width:140px; background: #000; color: #FFF; text-align: center;' title='".$radek['name_cs']."'>".$radek['name_cs']."</div>";   
  echo "</li>";
  
  $i++;

  }
echo '</ul>';  
xmark
Profil
Tomashekk:
Počítáš s tím, že až ti to v těch divech bude fungovat, budeš mít pod každým divem, který má dvouřádkový popisek, všechny další divy o ten řádek odsazené dolů?

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:

0