0
<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 中写这个?

4

3 回答 3

1

我猜你在问,因为你知道你应该使用 CakePHP HTML 帮助器来链接,但在你的情况下我不会 - 我会写一个自定义的 CakePHP 帮助器来显示你的 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

于 2013-01-05T06:38:59.700 回答
0

你的代码的基本 HTML 有很多问题,甚至在将 PHP 混入其中之前。

  • 属性应该" "在值周围加上引号。
  • 如果要将 HTML 放入另一个 HTML 标记的属性中,则应该对其进行转义。
  • 除非整个字符串都是 PHP,否则你需要用<?php ?>标签注入 PHP。
  • 您的 HTML 标记多次使用相同的 ID。ID 在页面上确实应该是唯一的,因此如果您发现自己经常重复使用 ID,请将其改为类。
  • 我认为这不是contentHTML 锚的有效属性(如果是,请忽略这一点)。理想情况下,自定义属性应以 为前缀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 />';
?>
于 2013-01-07T12:06:33.233 回答
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/>';
于 2013-01-05T08:01:46.213 回答