我想添加一列到現有的表格,並得到扭曲的結果。爲什麼會出現和額外的列插入?
我目前有:
print "<table border=1>";
print "<tr>
<td>First Name</td>
<td>Last Name</td>
<td>Email?</td>
<td>League</td>
<td>Team</td>
<td>Captain</td>
<td></td>
<td>paid</td>
<td>wks played</td>
</tr>";
while ($row=mysql_fetch_assoc($results)){
if($row['email_address'] != NULL){
$email='y';
}
else {
$email='n';
}
if($row[captain_id]==$row[player_num]){ $iscapt="Captain"; }
else{$iscapt="";}
$paid=$row[paid];
if($paid){$playpaid="<td bgcolor=#99ff33>paid</td>";}
else {$playpaid="<td bgcolor=#ff6633>not paid</td>";}
printf ("<tr>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
</tr>",
$row['first_name'],
$row['last_name'],
$email,
$row['league_id'],
$row['name'],
$iscapt,
$playpaid,
$row['weeks']
);
}
print "</table>";
對於什麼都原因,當我沒有隊長的<td></td>
並支付實際產生另一列。
原始代碼是:
printf("
<tr>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
</td>
<td>%s</td>
%s \n
</tr>",
$row['first_name'],
$row['last_name'],
$email,
$row['league_id'],
$row['name'],
$iscapt,
$playpaid);
嘗試,因爲我可能,我無法破譯如何獨立</td>
和獨立%s \n
正在努力擺脫「額外」列。
是的,我知道這都應該用CSS和這樣做,但我只是修改代碼,很到位。我還沒有達到能夠重寫整個頁面的水平。 (幾乎準備好雖然)
所以有人可以解釋爲什麼我需要插入一個額外的列,以及<\td>
和%s \n
是如何與舊代碼工作?順便說一句,如果我只是簡單地將一個<td>%s</td> and add
$ row ['weeks']`添加到語句的末尾,它仍會插入一個額外的列。我沒有試圖將它放在聲明的前面。
好吧把'...'在另一個'......'裏顯然會產生無效的HTML。整個腳本都是以最可想象的最糟糕的方式編寫的。你應該做的就是使用另一個佔位符將_class name_動態插入到「paid」td中,而不是爲了格式化而使用過時的HTML屬性。 – CBroe
好了,你在某些時候輸出包含東西這顯然是不好的HTML。然而,許多瀏覽器試圖「猜測」你的意思,並試圖「修復」它。所以他們經常把它改成類似於的東西這並不令人驚訝地增加了一個額外的列,你不會指望的。添加一個將抵消這種行爲。 – Tularis
@CBroe,它不是過時的HTML。當然,這是一箇舊標準(有效的HTML 4),但這並不會使它錯誤。只是不是非常漂亮,而且功能比HTML5 + CSS3更強大 – Tularis