本文介绍一种纯PHP实现的Tab选项卡效果,无需依赖JavaScript。通过解析URL中的city_id参数,服务器端动态生成对应的CSS样式以高亮当前选中项,并根据参数查询数据库返回不同城市的内容列表。该方法利用PHP控制逻辑与HTML结构结合,实现了轻量级的前端交互效果。
纯PHP Tab选项卡核心逻辑与CSS生成
实现该功能的核心代码逻辑如下所示:
<style type="text/css">
<?php
if(!isset($_GET['city_id']))
{
$city_id = 12;
}
else
{
$city_id = $_GET['city_id'];
}
echo '.a'.$city_id.'
{
color:red;
}
';
for($i=12;$i<=16;$i++)
{
if($i != $city_id)
{
if ($i != 12 )
{
echo '.list'.$i.'{
background-image:url("image/style/bg.gif");
}';
}
else
{
echo '.list'.$i.'
{
background-image:url("image/style/left_bg.gif");
}
';
}
}
else
{
if($city_id != 12)
{
echo '.list'.$city_id.'
{
background-image:url("image/style/on.gif");
}
';
}else
{
echo '.list'.$city_id.'{
background-image:url("image/style/recuit_title.gif");
}';
}
}
}
?>
</style> 2.点击的时候,就可以打开链接
HTML结构构建与数据库内容交互
接下来是HTML结构部分的代码实现:
<div class="recuit_title" >
<ul id="recuit_li">
<li class="list12"><a class="a12" href="test.php?city_id=12">北京</a></li>
<?php
include_once ("config/db.inc.php");
$recuit_city_select = "select * from cdb_plugins_city where city_id in(13,14,15,16)";
$recuit_city_query = mysql_query ( $recuit_city_select );
while ( $recuit_city_row = mysql_fetch_assoc ( $recuit_city_query ) ) {
$cid = $recuit_city_row['city_id'];
echo '<li class="list'.$recuit_city_row['city_id'].'" ><a class="a'.$recuit_city_row['city_id'].'" href="test.php?city_id=' . $recuit_city_row ['city_id'] . '">' . $recuit_city_row ['city_name'] . '</a></li>';
}
?>
</ul>
<span class="more_recuit_info">
<a href="../job.php?action=recuit_list&cid=12" onClick="parent.showWindow('recuit_list',this.href);return false;">更多招募信息</a>
</span>
</div>
<div class="recuit_content">
<table width="100%">
<?php
if(!$_GET['city_id'])
{
$recuit_content_select = "select * from cdb_plugins_recuit where city_id= 12 limit 0,8";
$recuit_content_query = mysql_query($recuit_content_select);
while($recuit_content_row = mysql_fetch_assoc($recuit_content_query))
{
echo '<tr height="25">
<td>
<a onclick="parent.showWindow('.'\'recuit_info\','.'this.href'.');return false;"'.'" href="../job.php?action=recuit_info&recuit_id='.$recuit_content_row['recuit_id'].'">'.$recuit_content_row['recuit_name'].'</a>
</td>
<td width="80" align="right" style="color:#0080ff;font-size:12px;">
'$recuit_content_row['username'].'
</td>
</tr>';
}
}
else
{
$recuit_content_select = "select * from cdb_plugins_recuit where city_id={$_GET['city_id']} limit 0,10";
$recuit_content_query = mysql_query($recuit_content_select);
while($recuit_content_row = mysql_fetch_assoc($recuit_content_query))
{
echo '<tr>
<td><a onclick="parent.showWindow('.'\'recuit_info\','.'this.href'.');return false;"'.'" href="../job.php?action=recuit_info&recuit_id='.$recuit_content_row['recuit_id'].'">'.$recuit_content_row['recuit_name'].'</a></td>
<td width="80" align="right" style="color:#0080ff;font-size:12px;">'$recuit_content_row['username'].' </td>
</tr>';
}
}
?>
</table>
</div>
用户状态判断与底部操作栏实现<div class="recuit_footer">
<?php
include_once ("../include/common.inc.php");
$recuit_query = mysql_query("select * from cdb_plugins_recuit_userinfo where uid=$discuz_uid");
$recuit_rows = mysql_fetch_assoc($recuit_query);
if($recuit_rows['uid'] == '')
{
echo '<a href="../job.php?action=recuit" onclick="parent.showWindow('.'\'recuit\''.',this.href);return false;"><img src="image/style/recuit_frm_input.gif" border="0" /></a> ';
}
else
{
echo '<a href="../job.php?action=edit_recuit" onclick="parent.showWindow('.'\'edit_recuit\''.',this.href);return false;"><img src="image/style/edit_recuit.gif" border="0"/><a> ';
}
?>
</div>