我们如何在cakephp中编写这些内容?

piztneat  于 2022-11-11  发布在  PHP
关注(0)|答案(3)|浏览(163)
<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>

我们如何在cakephp中编写这些内容?

zi8p0yeb

zi8p0yeb1#

我猜你这样问是因为你知道你 * 应该 * 使用CakePHP HTML助手链接,但在你的情况下,我不会-我会写一个自定义的CakePHP助手来显示您的HTML..如果你要一次又一次地使用这段代码,建立一个助手(如何做到这一点的链接如下)..
...但是看看您在那里所拥有的,您实际上并没有做太多的事情,链接实际上并没有去任何地方,所以为什么不保留您所拥有的呢?为了安全起见,除了图像帮助程序:

<?php echo $this->Html->image($row['images'], array('class'=>'tooltip-image'));?>

使用框架助手可以保存大量的时间,也可以解决一些位置问题,但并不总是解决方案。你可以过度设计助手的使用。
下面是你在CakePHP中需要的所有信息,以及如何使用现有的助手和如何创建自己的助手:http://book.cakephp.org/2.0/en/views/helpers.html

kwvwclae

kwvwclae2#

您的代码无效。不能有多个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/>';
xuo3flqw

xuo3flqw3#

代码的基本HTML有太多的错误,甚至在PHP加入之前。

  • 属性的值前后应加上" "引号。
  • 如果您要将HTML放在另一个HTML标记的属性内,则应该对它进行转义。
  • 除非整个字符串都是PHP,否则您需要在PHP中插入<?php ?>标记。
  • 你的HTML标签多次使用同一个ID。ID在页面上应该是唯一的,所以如果你发现自己经常重复使用一个ID,就把它变成一个类。
  • 我不认为content是HTML锚的有效属性(如果是,忽略这一点)。自定义属性最好以data-作为前缀,因此在本例中,该属性应为data-content

首先要做的是将内容部分分离出来,并将其添加到链接中,这将大大提高代码的可读性和组织性。

修复了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 Package 器,以便您可以有效地从CSS或JavaScript中定位内部元素。如果您的数据库表没有id列,请用主键字段的名称替换。如果没有主键,则返回循环中的计数器(您应该这样做)。我之所以添加这个,是因为看起来您正在遍历行并输出这些链接。如果您没有“最后,我将链接的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 />';
?>

相关问题