<table id="profil_table">
<?php
$req_album = $bdd->prepare("SELECT * FROM album WHERE idUser = ?");
$req_album->execute(array($_GET['id']));
$cpt = 0;
do{
echo "<tr>";
for($i=0; $i<3; $i++){
$resultat = $req_album->fetch();
if(isset($resultat['nom'])){
echo "<a href=\"album_page.php?id=".$_GET['id']."\"><td><img src=\"img/".$userinfo['pseudo']."/".$resultat['nom']."/couverture".".".$resultat['typePhotoCouv']."\"/>".$resultat['nom']."</td></a>";
$cpt++;
}else{
echo "<td></td>";
}
}
echo "</tr>";
}while(isset($resultat['nom']));
if($cpt == 0){
echo "<div id=\"vide\">Vous n'avez toujours pas publié d'album!</div>";
}
?>
</table>
您是否在if语句后看到我打印的内容:isset($resultat['nom'])
这就是打印出来的内容:
&#34; a&#34;标签打印出来的PHP代码。这怎么可能呢?
有什么想法吗?
答案 0 :(得分:1)
a
元素不允许作为tr
元素的直接子元素。 only allowed children是td
或th
个元素。发生的事情是,您的浏览器正在重新编辑生成的HTML,尽最大努力使其合法,因为它将您发送的HTML转换为内存中的真实DOM树。
您应该在浏览器中“查看来源”以查看实际生成的来源;您发布的视图可能是您的浏览器最终生成的内存中的DOM树。
解决方案是将a
内的td
元素移动。
答案 1 :(得分:0)
试试这个 将&lt; a&gt; 放在&lt; td&gt;
中<table id="profil_table">
<?php
$req_album = $bdd->prepare("SELECT * FROM album WHERE idUser = ?");
$req_album->execute(array($_GET['id']));
$cpt = 0;
do{
echo "<tr>";
for($i=0; $i<3; $i++){
$resultat = $req_album->fetch();
if(isset($resultat['nom'])){
echo "<td><a href=\"album_page.php?id=".$_GET['id']."\"><img src=\"img/".$userinfo['pseudo']."/".$resultat['nom']."/couverture".".".$resultat['typePhotoCouv']."\"/>".$resultat['nom']."</a></td>";
$cpt++;
}else{
echo "<td></td>";
}
}
echo "</tr>";
}while(isset($resultat['nom']));
if($cpt == 0){
echo "<div id=\"vide\">Vous n'avez toujours pas publié d'album!</div>";
}
?>
</table>