我有一个带有html表的结果php页面。在row[3]
内,我有剧透。如果我点击一个文本值我可以看到隐藏的内容。
内隐藏的内容我在不同的行上有链接为了做到这一点:
- 我在mysql textarea中插入文本,所以:
- 然后我在<head>
部分
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$(".spoiler-label").click(function() {
$(this).parent().find(".spoiler-content").toggle();
});
});
</script>
- 然后是php代码:
echo '<td><span class="spoiler-label">'.$row[1].'</span><div class="spoiler-content" style="display: none"><br><a href='.$row[3].'<a/></div><td>';
- 为了打破新行中的文本,我使用这个PHP代码:
$row['3']=stripslashes($row['3']);
$row['3']=str_replace('<br />',"newline",$row['3']);
$row['3']=htmlentities($row['3']);
$row['3']=str_replace('newline',"<br>",$row['3'])
我获得了这个最终结果:
但你可以看到问题:
- 缺少格式,因为第X行的<th>
为黑色且不是橙色
- 扰流板内的链接为2,但被视为一个链接。
- 我没有正确链接,因为 google.com 是http://google.com<br
为什么?
您可以看到2个链接:http://alfa.com
http://google.com
如果我点击http://alfa.com,则链接始终为http://google.com<br
>
我想要:
- 从链接中删除<br
- 将一个链接分成不同的链接(alfa.com和google.com)
- 修复错误的行格式
这是我的网页完整代码http://pastebin.com/zb22VqwD和此css http://pastebin.com/dFRFURGM
答案 0 :(得分:1)
首先,你的1行php代码回显是错误的(你没有关闭<a>
)。由于这个原因,CSS没有用。
(我删除了第一个回声)
第二,<a>
代码中不能包含其他<a>
代码,因此您应该从上面的代码中删除整个<a>
,这意味着它应该是:
echo '<td><span class="spoiler-label">'.$row[1].'</span><div class="spoiler-content" style="display: none"><br>'.$row[3].'</div><td>';
然后,当由于某种原因而不是将您的<br/>
更改为旧版<br>
标记时,请使用该标记创建数组:
$ary=explode('<br />',$row['3']);
$str="";
foreach($ary as $str2){
$str.="<a href=\"$str2\">$str2</a><br/>";
}
然后将$str
回显到行
您的代码应为:
$row['3']=str_replace('<br />',"newline",$row['3']);
$row['3']=stripslashes($row['3']);
$row['3']=htmlentities($row['3']);
$ary=explode('newline',$row['3']);
$str="";
foreach($ary as $str2){
$str.="<a href=\"$str2\">$str2</a><br/>";
//$str.="$str2<br/>";
}
$row['3']=$str;
答案 1 :(得分:0)
您正在使用beolow代码:
$row['3']=stripslashes($row['3']);
$row['3']=str_replace('<br />',"newline",$row['3']);
$row['3']=htmlentities($row['3']);
$row['3']=str_replace('newline',"<br>",$row['3'])
而不是上面的代码使用如下:
$row['3']=str_replace('<br />',"newline",$row['3']);
$row['3']=stripslashes($row['3']);
$row['3']=htmlentities($row['3']);
$row['3']=str_replace('newline',"<br>",$row['3'])
只需将第一行替换为第二行和第二行即可。首先尝试...希望此帮助..