echo '<tr class="class_row">';
echo '<td>';
echo $this->Html->link($post['Post']['title'],
array('controller'=>'posts','action'=>'view',$post['Post']['id']),
array('id'=>'id_anchor_title','class'=>'class_anchor_title') );
echo '<h6><i>'.$this->Time->format('d-M-Y',strtotime($post['Post']['created'])).'</i></h6>';
echo '<br/>';
$last_paragraph=$post['Post']['body'];
$length = strlen($last_paragraph);
echo $this->Text->truncate($last_paragraph,150,array('ending' => '...','exact' => false));
echo '<br/>';
//echo debug($last_paragraph);
if($length > 151){
echo $this->Html->link('more',
array('controller'=>'posts','action'=>'view',$post['Post']['id']),
array('id'=>'id_anchor_more','class'=>'class_anchor_more') );
}
echo '</td>';
echo '<td>'.$this->Html->link('Edit',
array('controller'=>'posts','action'=>'edit',$post['Post']['id']) ).'</td>';
echo '<td>'.$this->Html->link('Delete',
array('controller'=>'posts','action'=>'delete',$post['Post']['id'])).'</td>';
echo '</td>';
echo '</tr>';
当我发布内容时,“更多”链接/锚点会附加为帖子的内容/正文。
我如何制作/休息并阻止“更多”成为身体元素?
我将以下行作为帖子的内容或正文,但它将是一个单独的链接。
<a href="/posts/view/37" id="id_anchor_more" class="class_anchor_more">more</a>
链接应该在里面:
<table>
<tr>
<td>Content..Data.. <br/>'more' </td>
<td>Edit</td>
<td>Delete</td>
</tr>
</table>
有人可以帮我解决这个问题吗?
我不能在同一列<td>
中使用正文和“更多”问题是我正在使用syntaxhighlighter http://alexgorbatchev.com/SyntaxHighlighter/,当我在标记<pre class="brush: cpp"> ...body.. </pre>
中放入一些代码时问题出现了。
答案 0 :(得分:2)
HTML结构无效。您在链接后错过了结束</td>
。
这也是使用the HTML helper to create tables的好主意:它消除了错误地丢失标签的可能性。
答案 1 :(得分:2)
<style>
table tr td h6{font-style: italic;}
</style>
<tr class="class_row">
<td>
<?php
echo $this->Html->link($post['Post']['title'],
'/posts/view'.$post['Post']['id'],
array('id'=>'id_anchor_title','class'=>'class_anchor_title')
);?>
<h6><?php echo $this->Time->format('d-M-Y',strtotime($post['Post']['created']));?></h6>
<br/>
<?php
$last_paragraph=$post['Post']['body'];
$length = strlen($last_paragraph);
echo $this->Text->truncate($last_paragraph,150,array('ending' => '...','exact' => false));
?>
<br/>
<?php
if($length > 151){
echo $this->Html->link('more', '/posts/view'.$post['Post']['id'],
array('id'=>'id_anchor_more','class'=>'class_anchor_more')
);
}
?>
</td>
<td><?php echo $this->Html->link('Edit', '/posts/edit'.$post['Post']['id']);?></td>
<td><?php echo $this->Html->link('Delete', '/posts/delete'.$post['Post']['id']);?></td>
</tr>
我认为通过这种方式编写它会更容易阅读,我已经在我的工作cakePHP项目上测试了这个,用一些带有html标签的文本替换$post['Post']['body']
,它工作正常,请注意我不会改变您的原始代码,只需删除回声。
我怀疑你的$post['Post']['body']
可能包含一些使你的链接成为纯文本的内容,请尝试用div或其他内容将其封闭
<div>
<?php
echo $this->Text->truncate(
$last_paragraph,
150,
array('ending' => '...', 'exact' => false)
);?>
</div>
答案 2 :(得分:1)
试试这个
echo '<tr class="class_row">';
echo '<td>';
echo $this->Html->link($post['Post']['title'],
array('controller'=>'posts','action'=>'view',$post['Post']['id']),
array('id'=>'id_anchor_title','class'=>'class_anchor_title') );
echo '<h6><i>'.$this->Time->format('d-M-Y',strtotime($post['Post']['created'])).'</i></h6>';
echo '<br/>';
$last_paragraph=$post['Post']['body'];
$length = strlen($last_paragraph);
echo $this->Text->truncate($last_paragraph,150,array('ending' => '...','exact' => false));
echo '</td>';
if($length > 151){
echo '<td>'.$this->Html->link('more',
array('controller'=>'posts','action'=>'view',$post['Post']['id']),
array('id'=>'id_anchor_more','class'=>'class_anchor_more') ).'</td>';
}
echo '</td>';
echo '<td>'.$this->Html->link('Edit',
array('controller'=>'posts','action'=>'edit',$post['Post']['id']) ).'</td>';
echo '<td>'.$this->Html->link('Delete',
array('controller'=>'posts','action'=>'delete',$post['Post']['id'])).'</td>';
echo '</tr>';