2016-09-02 48 views
0

根據獲取的數據是否可以更改/添加字體真棒圖標? 如果type.pdf字體真棒將是<i class="fa fa-file-pdf-o">否則,如果type.docx它將是<i class="fa fa-file-word-o"></i>。有人可以告訴我怎麼做嗎?我會用什麼? Javascript還是PHP?如何根據一些數據動態添加字體真棒圖標

這是我的一些代碼。

<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> 

回答

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>'; 
} 
?> 
+0

感謝。它的工作:) – nethken

+0

這太棒了!請享用 :) –

1

首先,最好的做法是,以您的演示文稿從邏輯中分離出來。在你的HTML中間有一個mysql查詢的權利並不是一個好主意。而是將您的查詢放在HTML之前,然後循環顯示HTML中的結果。

裝上去你這樣的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; 
} 

那麼你的HTML遍歷結果中:

<div class="col-sm-6 col-md-6"> 
    <?php 
     foreach ($files as $file) { 
      ?> 
      <a style="display:block; margin-top:5px;" href="uploads/<?php echo $file['filename'] ?>" target="_blank"> 
       <i class="fa <?php echo $file['fa'];?>"></i> <?php echo $file['filename']; ?></i> 
      </a> 
      <?php 
     } 
    ?> 
</div> 
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>"; 

注意:您也可以在文本中使用變量值。然後它將進入開關盒內。

1

你也可以這樣做。在html中輸入較少的代碼。

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

功能是沒有必要的,但它會防止萬一的錯誤$類型變量爲空或文件類型不包含在數組中。

如果您確定文件類型將始終存在並且它將在數組中關聯一個元素,那麼也可以只創建一個數組並從代碼中調用它。

實施例:

<?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>