使用codeigniter </h3> </span>中的锚点生成<span>和<h3>的链接

时间:2012-08-25 17:22:45

标签: php html codeigniter codeigniter-2 codeigniter-url

我正在使用CodeIgniter的锚标记来生成链接

以下是我在视图中使用的代码:

<?=anchor('blog/post/'.$row->id,$row->title);?>

上面的代码正在呈现网址,如

<a href="http://localhost/Blog/index.php/blog/post/3">Title</a>

我想了解在<a>代码中嵌入其他HTML元素的其他方法吗?

HTML页面上的输出应如下所示:

<a href="link" rel="bookmark"> 
    <span class="location">Category</span>
     <h3 class="headline">Headline</h3>
     <span class="new">New !</span>
    <span class="date">Date</span>
  </a>

即。在<a>代码中,我想嵌入<span><h3>

有什么建议吗?

4 个答案:

答案 0 :(得分:1)

恕我直言,CodeIgniter的html助手+ url助手中包含的一些函数是绝对矫枉过正的。

只需使用带有PHP短标签的vanilla HTML ...它可以传达更好的语义,节省CPU,并且对于将来继承您的代码的人们来说更容易理解......

<a href="blog/post/<?= $row->id; ?>" rel="bookmark"> 
    <span class="location">Category</span>
     <h3 class="headline"><?= $row->title; ?></h3>
     <span class="new">New !</span>
    <span class="date">Date</span>
</a>

答案 1 :(得分:0)

<?php
    $my_a = '<span class="location">Category</span>
        <h3 class="headline">'.$row->title.'</h3>
        <span class="new">New !</span>
        <span class="date">Date</span>';
    anchor('blog/post/'.$row->id,$row->title);?>

或者为这种类型的链接编写自己的助手。

答案 2 :(得分:0)

我建议您自己编写HTML,然后使用site_url()函数来生成链接href。

anchor()用于简单链接和在模板中嵌入链接而无需编写HTML。您想要输出链接的方式不是anchor()设计的目的。

你可以用这样的函数创建一个帮助器:

function bookmark_anchor($uri, $text)
{
    $html  = '<a href="' . site_url($uri) . '" rel="bookmark">';
    $html .= '<span class="location">Category</span>';
    $html .= '<h3 class="headline">' . $text . '</h3>';
    $html .= '<span class="new">New !</span>';
    $html .= '</a>';

    return $html
}

然后使用它:

<?php echo bookmark_anchor('blog/post/'.$row->id, $row->title); ?>

Sidenote :如果你能忍受,我会避免使用PHP短标签。它们不能立即移植到每个系统,因此如果将代码移动到另一个服务器(并且可能无法启用短标签),则可能会遇到问题。 CI提供了为您重写短标签的选项,但这会通过输出缓冲引入开销。

答案 3 :(得分:0)

只需使用锚方法的第二个参数,如下所示:

$a ='<span class="location">Category</span>
     <h3 class="headline">Headline</h3>
     <span class="new">New !</span>
    <span class="date">Date</span>';

<?=anchor('blog/post/'.$row->id,$a.$row->title,array("rel" => "bookmark"));?>

另外我添加了第三个参数,可以让你为标签写出html属性;在这种情况下,'rel'属性。