你的代码的基本 HTML 有很多问题,甚至在将 PHP 混入其中之前。
- 属性应该
" "
在值周围加上引号。
- 如果要将 HTML 放入另一个 HTML 标记的属性中,则应该对其进行转义。
- 除非整个字符串都是 PHP,否则你需要用
<?php ?>
标签注入 PHP。
- 您的 HTML 标记多次使用相同的 ID。ID 在页面上确实应该是唯一的,因此如果您发现自己经常重复使用 ID,请将其改为类。
- 我认为这不是
content
HTML 锚的有效属性(如果是,请忽略这一点)。理想情况下,自定义属性应以 为前缀data-
,因此在这种情况下,该属性应为data-content
。
您应该做的第一件事是将内容部分分离到它自己的 PHP 变量中,您可以将其添加到链接中。这将对代码的可读性和组织有很大帮助。
在不更改 HTML 属性的情况下修复 PHP
<?php
$content = '<div id="imagcon">
<img src="' . $row['images'] . '" class="tooltip-image" />
</div>
<div id="con">Address:' . $row['Address'] . '</div>
<div id="con">Contact:' . $row['contact'] . '</div>
<div id="con">Email:' . $row['email'] . '</div>
<div id="con">Status:' . $row['status'] . '</div>
<div id="con">Age:' . $row['age'] . '</div>';
echo '<a href="#" alt="Image Tooltip" rel="tooltip" content="' . $content . '">' . $row['Name'] . '</a><br />';
?>
尽管我建议您将 HTML 内容更改为此,但如果可以的话:
它使用类而不是重复的 ID,并且还有一个具有唯一 ID 的外部 div 包装器,以便您可以有效地从 CSS 或 JavaScript 定位内部元素。如果您的数据库表没有id
列,请替换为您的主键字段的名称,或者如果您没有主键(您应该),则替换为循环中的计数器。我添加了这个,因为看起来你正在循环遍历行并输出这些链接。如果不是,您可以删除外部 div。最后,我将链接的content
属性更改为data-content
。
<?php
$content = '<div id="row-' . $row['id'] . '">
<div class="imagcon">
<img src="' . $row['images'] . '" class="tooltip-image" />
</div>
<div class="con">Address:' . $row['Address'] . '</div>
<div class="con">Contact:' . $row['contact'] . '</div>
<div class="con">Email:' . $row['email'] . '</div>
<div class="con">Status:' . $row['status'] . '</div>
<div class="con">Age:' . $row['age'] . '</div>
</div>';
?>
CakePHP 等价物
<?php
$content = '<div id="row-' . $row['id'] . '">
<div class="imagcon">' . $this->Html->image($row['images'], array('class' => 'tooltip-image')) . '</div>
<div class="con">Address:' . $row['Address'] . '</div>
<div class="con">Contact:' . $row['contact'] . '</div>
<div class="con">Email:' . $row['email'] . '</div>
<div class="con">Status:' . $row['status'] . '</div>
<div class="con">Age:' . $row['age'] . '</div>
</div>';
echo $this->Html->link($row['name'], '#', array(
'alt' => 'Image Tooltip',
'data-content' => $content,
'rel' => 'tooltip'
));
echo '<br />';
?>