如何在PHP输出的HTML按钮中添加display:none样式?
解决PHP Echo中插入样式变量的问题
你遇到的问题核心是在PHP的echo字符串里错误嵌套了PHP标签——当你已经处于PHP代码块中时,不需要再用<?php echo ...;?>来输出变量,直接通过字符串拼接或者变量解析即可。
问题分析
你原来的代码里,这一行是错误的:
echo '<a href="'.site_url('members/addfriend/'.$member['user_id']).'" class="btn btn-primary">Add As Friend <?php echo $style;?> </a>';
这里的<?php echo $style;?>会被当作普通HTML文本输出到页面上,而不是执行PHP逻辑,所以样式根本不会生效。
修正后的代码
我们只需要把$style变量直接拼接到a标签的属性中即可,下面是完整的修正版本:
<?php $style = ""; if($this->session->userdata('user_id') == $member['user_id']) { $style = "style='display:none;'"; } if ($member2 == 0){ // 直接将$style拼接到a标签的属性列表中 echo '<a href="'.site_url('members/addfriend/'.$member['user_id']).'" class="btn btn-primary" '.$style.'>Add As Friend</a>'; } else { echo '<a href="'.site_url('members/removefriend/'.$member['user_id']).'" class="btn btn-primary">Remove Friend </a>'; } ?>
关键说明
- 当
$style为空字符串时,拼接后a标签的属性只会保留class="btn btn-primary",不会产生多余的空格或无效属性。 - 如果你习惯用双引号包裹HTML字符串,也可以这样写(注意转义内部的双引号,或者用花括号包裹变量):
echo "<a href=\"".site_url('members/addfriend/'.$member['user_id'])."\" class=\"btn btn-primary\" {$style}>Add As Friend</a>";
这样修改后,当条件满足时,"Add As Friend"按钮就会被正确隐藏啦!
内容的提问来源于stack exchange,提问作者rajrathod
相关产品推荐
相关产品推荐

