<a href=# alt=Image Tooltip rel=tooltip 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>">'.$row['Name'].'</a>'.'<br>'
我们如何在cakephp中写这个?
答案 0 :(得分:1)
我想你是在问,因为你知道你应该使用CakePHP HTML帮助器进行链接,但在你的情况下我不会 - 我会编写一个自定义的CakePHP Helper来显示你的HTML。如果您要一次又一次地使用此代码,请构建一个帮助程序(如下所示的链接)...
...但是看看你有什么,你实际上并没有做太多,链接实际上没有去任何地方所以为什么不保留你拥有的?除了图像帮助器是安全的:
<?php echo $this->Html->image($row['images'], array('class'=>'tooltip-image'));?>
使用框架帮助程序可以节省大量时间并解决位置问题,但并不总是解决方案..您可以过度使用帮助程序。
以下是CakePHP for Helpers所需的所有信息,您就是如何使用现有帮助以及如何创建自己的帮助:http://book.cakephp.org/2.0/en/views/helpers.html
答案 1 :(得分:0)
您的代码无效。您不能拥有多个具有相同值的ID。没有修复破碎的HTML
$content = '<div id=imagcon>' . $this->Html->image($row['images'], array('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 $this->Html->link($row['name'], '#', array(
'alt' => 'image',
'rel' => 'tooltip',
'content' => $content,
'escape' => false
)) . '<br/>';
答案 2 :(得分:0)
代码的基本HTML有很多问题,甚至在将PHP混合之后也是如此。
" "
引用。<?php ?>
标记注入PHP。content
不是HTML锚的有效属性(如果是,请忽略这一点)。理想情况下,自定义属性应以data-
为前缀,因此在这种情况下,属性将为data-content
。您应该做的第一件事是将内容部分分离为您可以添加到链接的PHP变量。这将有助于代码的可读性和组织性。
修正了PHP而不更改HTML属性
<?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 />';
?>