如何根据一些数据动态添加字体真棒图标

时间:2016-09-02 04:15:20

标签: javascript php fonts

是否可以根据获取的数据更改/添加字体真棒图标? 如果type.pdf,则<i class="fa fa-file-pdf-o">如果type.docx,则字体为<i class="fa fa-file-word-o"></i>,它将为 <div class="col-sm-6 col-md-6"> <?php $sql ="SELECT * FROM lectures WHERE subj_descr = '$subj'"; $result = mysqli_query($con, $sql); while($row = mysqli_fetch_array($result)){ $file = $row['file']; $type = $row['type']; ?> <a style="display:block; margin-top:5px;" href="uploads/<?php echo $file ?>" target="_blank"><i class="fa fa-file-word-o"></i> <?php echo $file; ?></i></a> <?php } ?> </div> 。有人可以给我一些想法吗?我会用什么? Javascript还是PHP?

这是我的一些代码。

{{1}}

5 个答案:

答案 0 :(得分:1)

尝试这样的事情:

<?php
if($type = $row['type'] == 'pdf')   // make <i> tag on behalf of condition
{
    echo '<i class="fa fa-file-pdf-o">'. your text here .'</i>';
}
else if($type = $row['type'] == 'txt')
{
    echo '<i class="fa fa-file-word-o">'. your text here .'</i>';
}
?>

答案 1 :(得分:1)

首先,最佳做法是将您的演示文稿与逻辑分开。在HTML中间有一个mysql查询,这不是一个好主意。而是将您的查询放在HTML之前,并在HTML中循环结果。

在你的HTML之前加上这样的东西:

"./hello"

然后在结果中的HTML循环中:

$files = [];
while($row = mysqli_fetch_array($result)){
    $file['filename'] = $row['file'];
    $file['type'] = $row['type'];

    switch($file['type']) {
        case 'pdf':
            $file['fa'] = 'fa-file-pdf-o';
            break;
        case 'docx':
        case 'doc':
            $file['fa'] = 'fa-file-word-o';
            break;
        default:
            throw new Exception('Invalid file type'); // Handle this how you want
    }
    $files[] = $file;
}

答案 2 :(得分:1)

您也可以在这里使用开关。

switch(strtolower($row['type'])){
    case 'pdf':
        $icon = "fa-file-pdf-o";
        break;
    default:
        $icon = "fa-file-word-o";
        break;
}

echo "<i class='fa ". $icon ."'>". your text here ."</i>";

注意:您也可以对文本使用变量值。然后哪个也会进入开关盒。

答案 3 :(得分:1)

你也可以这样做。在html中输入更少的代码。

<?php
$row['type']=='pdf'?'pdf':'txt';
?>
<i class="fa fa-file-<?=$row['type']?>-o"></i>;

答案 4 :(得分:1)

将以下功能添加到您的页面。如果您需要添加其他文件类型/图标,可以在"new_file_type" => "fa-icon-name"中的数组$ fa中添加更多元素。只是不要忘记逗号。 Arrays

<?php
    function getFa($type){

        $fa = array(
            "pdf" => "fa-file-pdf-o",
            "docx" => "fa-file-word-o"
            );

        return isset($fa[$type]) ? $fa[$type] : '';
    }
?>

然后在HTML中可以像这样使用:

<i class="fa <?php echo getFa($type); ?>"></i> <?php echo $file; ?></i>

该函数不是必需的,但如果$ type变量为空或文件类型未包含在数组中,它将防止错误。

如果你确定文件类型将始终存在并且它将在数组中关联一个元素,也可以只创建一个数组并从代码中调用它。

示例:

<?php
    $fa = array(
        "pdf" => "fa-file-pdf-o",
        "docx" => "fa-file-word-o"
        );
?>

在HTML中:

<i class="fa <?php echo $fa[$type]; ?>"></i> <?php echo $file; ?></i>