我正在寻找如何为名字着色的想法。所以我有数据库,包含用户信息和用户颜色代码(#000等)。 Bellow是生成用户下拉列表的代码。我需要通过添加到数据库的颜色代码为用户名着色。我在哪里可以放入代码?名称位于所有者过滤器
中<font color="<?php echo @$user['user_color'];?>"></font>
这是打印用户列表的代码。
//db_loadHashList($sql);
$owner_combo = arraySelect($owner_list, 'owner_filter_id',
'class="text" onchange="javascript:document.searchform.submit()"',
$owner_filter_id, false);
// setup the title block
$titleBlock = new CTitleBlock('Companies', 'handshake.png', $m, "$m.$a");
$titleBlock->addCell(('<form name="searchform" action="?m=companies&search_string='
. dPformSafe($search_string) . '" method="post">' . "\n"
. '<table><tr><td><strong>' . $AppUI->_('Search')
. '</strong><input class="text" type="text" name="search_string" value="'
. dPformSafe($search_string) . '" /><br />'
. '<a href="index.php?m=companies&search_string=-1">'
. $AppUI->_('Reset search') . '</a></td><td valign="top"><strong>'
. $AppUI->_('Owner filter').'</strong> ' . $owner_combo
. ' </td></tr></table></form>'));
样品:
Lenon,John(红色)
史蒂夫,米奇(黄色)答案 0 :(得分:2)
您应该停止尝试记下您在视图中创建的每个元素的颜色。使用类代替,存在类以识别元素组以接收相同的样式规则。
相反,你应该创建一个动态样式表文件(css文件),为每个用户定义一个颜色:
.....
.user-styled.user-53846298 { color: #643; }
.user-styled.user-45384763 { color: #765; }
.user-styled.user-65937405 { color: #AB7; }
.....
这样的文件可以像任何普通的静态css文件一样通过php动态创建。
然后,在视图创建例程中,您可以通过以下方式标记与特定用户关联的元素:a)它应该接收特定于用户的样式,以及b)特定用户的属性:
.....
<form name="searchform" .....>
.....
<select name="search_user" .....>
<option
class="user-styled user-<?= $user['user_id']?>"
value="<?= $user['user_id'] ?>">
<?= $user['user_name'] ?>
</option>
.....
</select>
.....
</form>
.....
此方法不限于某些元素类型或任何内容。它灵活,功能强大且性能良好,因为动态创建的样式定义可以像任何其他css文件一样进行缓存。它还允许应用相同的样式,而无需额外的努力来通过客户端脚本或ajax调用创建的动态内容。因此,如果您获取有关单个用户的其他信息,则无需了解该用户的颜色(或任何特定于用户的数据),因为它已存在于样式定义中。您只需将用户ID标记为元素,它们就会相应地进行渲染。
答案 1 :(得分:0)
如果你想在你的选择框中使用样式,那么最好使用一些jQuery。 <select>
元素很难直接用CSS设置样式。