Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][SQL][PHP]Kłopoty z overlib
Forum PHP.pl > Forum > Przedszkole
eurosoft
Mam mały zgryz i nie wiem jak to przejść....
Znalazłem w sieci kod odpowiadający za dymki, wrzuciłem go do siebie, ale działa trachę inaczej niz bym chciał.
Tekst kótry pojawia się w dymku zawarty jest w sekcji head i jest statyczny
  1. <script type="text/javascript" src="overlibmws.js"></script>
  2. <script type="text/javascript" src="overlibmws_filter.js"></script>
  3. <script type="text/javascript">
  4. <!--
  5. OLpageDefaults(WRAP,BASE,3,TEXTFONT,'Verdana,Arial,Helvetica',TEXTPADDING,10,TEXTSIZE,'14px',FGCOLOR,'#ffffc0',CENTER);
  6. var fb = 'Tekst przykładowy';
  7. //-->
  8. </head>


z kolei w części właściwej strony jest nastepujący kod:

  1. ....
  2. echo "<td width=40"; if($r[anulowano]==T){echo ' style="text-decoration: line-through;"';}echo ' align=center>'.$r[nr]."</td>";
  3. echo "<td width=60"; if($r[anulowano]==T){echo ' style="text-decoration: line-through;"';}echo ' align=center>
  4. <Q onmouseover="return overlib(fb,ABOVE,FILTER,FILTERSHADOW,1,FILTERSHADOWCOLOR,FILTEROPACITY,70)" onmouseout="return nd()">'.$r[miejsce_pol]."</td></Q>";
  5. echo "<td width=80"; if($r[anulowano]==T){echo ' style="text-decoration: line-through;"';}echo ' align=center>'.$r[4]."</td>";
  6. echo "<td width=40"; if($r[anulowano]==T){echo ' style="text-decoration: line-through;"';}echo ' align=center>'.$r[5]."</td>";
  7. .....


chciałbym aby zmienna <b>fb</b> była brana dynamicznie z pola $dokladnie. Wszytskie dane sa pobierane z bazy SQL.
Proszę o wyrozumiałość dla początkującego oraz cenne uwagi.
mortus
Zastosuj się do reguły DRY. Kod:
  1. // ...
  2. echo "<td width=40"; if($r[anulowano]==T){echo ' style="text-decoration: line-through;"';}echo ' align=center>'.$r[nr]."</td>";
  3. echo "<td width=60"; if($r[anulowano]==T){echo ' style="text-decoration: line-through;"';}echo ' align=center>
  4. <Q onmouseover="return overlib(fb,ABOVE,FILTER,FILTERSHADOW,1,FILTERSHADOWCOLOR,FILTEROPACITY,70)" onmouseout="return nd()">'.$r[miejsce_pol]."</td></Q>";
  5. echo "<td width=80"; if($r[anulowano]==T){echo ' style="text-decoration: line-through;"';}echo ' align=center>'.$r[4]."</td>";
  6. echo "<td width=40"; if($r[anulowano]==T){echo ' style="text-decoration: line-through;"';}echo ' align=center>'.$r[5]."</td>";
  7. // ...
może wtedy wyglądać schludniej i działać szybciej, a przede wszystkim nie powtarza się:
  1. $style = ($r['anulowano']=='T' ? ' style="text-decoration: line-through;" ' : ' ');
  2. echo '<td width="40"'.$style.'align="center">'.$r['nr'].'</td>';
  3. echo '<td width="60"'.$style.'align="center">'.$r['miejsce_pol'].'</td>';
  4. echo '<td width="80"'.$style.'align="center">'.$r[4].'</td>';
  5. echo '<td width="40"'.$style.'align="center">'.$r[5].'</td>';

Rozumiem, że ten znacznik <Q>, to tylko przykład, a to co chcesz pokazać w tooltip znajduje się w zmiennej $r['dokladnie']? Zatem:
  1. echo '<td width="60" '.$style.'align="center"><a href="#" onclick="return false;" onmouseover="return overlib(\''.$r['dokladnie'].'\', ABOVE, FILTER, FILTERSHADOW, 1, FILTERSHADOWCOLOR, FILTEROPACITY, 70);" onmouseout="return nd();">'.$r['miejsce_pol'].'</a></td>';
eurosoft
Bardzo dziękuje za rozwiązanie, niewielu jest tu takich co potrafią /chcą/ odpowiedzieć na konkretne pytanie, odsyłanie do manuali, owszem ale czasami to zbyt mało, zwłaszcza gdy sie rozpoczyna tę przygoę!

Dziekuję raz jescze za wyczerpującą odpowiedź!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.