PHP / MYSQL着色名称

时间:2015-06-19 06:22:56

标签: php mysql

我正在寻找如何为名字着色的想法。所以我有数据库,包含用户信息和用户颜色代码(#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&amp;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&amp;search_string=-1">' 
                      . $AppUI->_('Reset search') . '</a></td><td valign="top"><strong>' 
                      . $AppUI->_('Owner filter').'</strong> ' . $owner_combo 
                      . ' </td></tr></table></form>'));

样品:

Lenon,John(红色)

史蒂夫,米奇(黄色)

2 个答案:

答案 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设置样式。

请参阅解决方案:http://gregfranko.com/jquery.selectBoxIt.js/