PHP变量覆盖图像在表内回显

时间:2013-05-26 12:29:59

标签: php html calendar

我正在使用PHP在显示的布局中为一周中的每一天输出一个时间轴日历类型的显示,其中包含3-4个工作班次持续时间:

|=========|==========================================================|
|         |                 |       STEVE       |                    |
|         |==========================================================|
|  $DATE  |       |     SARAH      |                                 |
|         |==========================================================|
|         |                                  |       JODIE       |   |
|=========|==========================================================|

当使用IMG SRC时,它正常工作,但我需要在其上放置超链接文本。我现在似乎正在失去中间跨度的适当的veritcal维度,或者它跳到下一行。我试图通过跨度样式或通过CSS更好地确保跨度边界,但无法弄明白。我正朝着正确的方向前进吗?

另外......由于$ date框的行高与移位行相比,使用更多的div / span代替TD / TR来创建所需的输出会更好吗?

    <?php
require'connect.php';

$query="SELECT mname,
((((TIME_TO_SEC(start) / '60') / '15') * '10') - '400'),
((((TIME_TO_SEC(finish) / '60') / '15') * '10') - (((TIME_TO_SEC(start) / '60') / '15') * '10')),
('960' - (((TIME_TO_SEC(finish) / '60') / '15') * '10'))
FROM schedule WHERE date >= NOW() AND date <= NOW() + INTERVAL 14 DAY ORDER BY date asc";
$result=mysql_query($query);
$num=mysql_numrows($result);
$a=0;

echo"<div><center><IMG SRC='images/filler1.jpg' WIDTH=80 HEIGHT=40></TD><IMG SRC='images/filler1.jpg' WIDTH=560 HEIGHT=40></center></div>";
echo"<div><center><TABLE WIDTH=640 BORDER=0 CELLPADDING=0 CELLSPACING=0>";

while ($a < $num){
$mname=mysql_result($result,$a,"mname");
$width1=mysql_result($result,$a,"((((TIME_TO_SEC(start) / '60') / '15') * '10') - '400')");
$width2=mysql_result($result,$a,"((((TIME_TO_SEC(finish) / '60') / '15') * '10') - (((TIME_TO_SEC(start) / '60') / '15') * '10'))");
$width3=mysql_result($result,$a,"('960' - (((TIME_TO_SEC(finish) / '60') / '15') * '10'))");
$rowheight=("120" / $num);

if ($a < 1){echo"
<TR>
<TD><IMG SRC='images/Shift_06.jpg' WIDTH=80 HEIGHT=120></TD>
<TD>
<IMG SRC='images/filler1.jpg' width='$width1' height='$rowheight'>
<span style='display:inline-block; width:$width2; height:$rowheight; text-align:center; font-family: Annifont; font-size: 13px; background-color:#b0c4de; border:none;'><a href='$name.html'>$mname</a></span>
<IMG SRC='images/filler1.jpg' width='$width3' height='$rowheight'>";}

if ($a > 0){echo"<br>
<IMG SRC='images/filler1.jpg' width='$width1' height='$rwoheight'>
<span style='display:inline-block; width:$width2; height:$rowheight; text-align:center; font-family: Annifont; font-size: 13px; background-color:#b0c4de; border:none;'><a href='$name.html'>$mname</a></span>
<IMG SRC='images/filler1.jpg' width='$width3' height='$rowheight'>";}
$a++;}

echo"</TD></TR></TABLE></center></div>";

if (!mysql_query($query))
  {die('Error: ' . mysql_error());}   

mysql_close();
?> 

1 个答案:

答案 0 :(得分:0)

我回去使用TR / TD而不是跨度。 我之前遇到的问题是每个TD对于数据库中的每个员工班次持续时间是一个不同的宽度$变量。这没有创建正确的时间布局。

相反,我在上面的TD列中创建了所需的56个时间轴增量。 这允许我使用宽度$变量用于COLSPAN而不是TD宽度(以像素为单位)。

希望这可以帮助其他人尝试输出类似的日历布局。

echo"<div><center><TABLE WIDTH=640 BORDER=0 CELLPADDING=0 CELLSPACING=0><TR>
<TD width='80' height='40' background='images/filler1.jpg'></TD>";
while ($b != "56"){echo"
<TD width='10' height='40' background='images/filler1.jpg'></TD>";
$b++;}
echo"</TR>";

        if ($a < "1"){echo"<TR><TD ROWSPAN=4><IMG SRC='images/Shift_06.jpg' WIDTH=80 HEIGHT=120></TD>
            <TD COLSPAN='$width1' height='$roheight' align='center' valign='middle' background='images/filler1.jpg'></TD>
            <TD COLSPAN='$width2' height='$roheight' align='center' valign='middle' background='images/filler2.jpg' class='ChillOutGrey2'>
            <a href='$mname.html'>$mname</a></TD>
            <TD COLSPAN='$width3' height='$roheight' align='center' valign='middle' background='images/filler1.jpg'></TD>
            </TR>";}
        if ($a > "0") {echo"<TR>
            <TD COLSPAN='$width1' height='$roheight' align='center' valign='middle' background='images/filler1.jpg'></TD>
            <TD COLSPAN='$width2' height='$roheight' align='center' valign='middle' background='images/filler2.jpg' class='ChillOutGrey2'>
            <a href='$mname.html'>$mname</a></TD>
            <TD COLSPAN='$width3' height='$roheight' align='center' valign='middle' background='images/filler1.jpg'></TD>
            </TR>";}
$a++;}
echo "</TABLE></center></div>";