2010-02-25 175 views
0

我有一個wordpress(php)主題硬編碼的選擇菜單,但經理需要頻繁編輯這些菜單。是否可以從文本文件導入填充選擇下拉選項?所以他只需要編輯文本文件,菜單選項就會改變。從.txt創建選擇下拉菜單?

當前的菜單如下:

<select name="location" id="sort-location" class="sort-dropdown"> 
      <option value="" selected="selected">LOCATION:</option> 
      <option value="" disabled="">--------------</option> 
      <option value="hongkong">Hong Kong</option> 
      <option value="taiwan">Taiwan</option> 
      <option value="mainland_china">Mainland China</option> 
      <option value="" disabled="">--------------</option> 
      <option value="">SHOW ALL</option> 
     </select> 

回答

1

好的 - 讓自己成爲一個小循環,以您選擇的格式運行。

<?php 
$select = file_get_contents('select.txt'); 
$lines = explode("\n", $select); 
foreach ($lines as $line) { 
    // let's say our format is like this: 
    // value|name|selected|disabled 
    // or: 
    // - 
    // for separator 
    if ($line == '-') { 
     echo '<option disabled="disabled">----------</option>'; 
    } else { 
     list($value, $name, $selected, $disabled) = explode("|",$line); 
     echo '<option value="'.$value.'"', 
     $selected?' selected="selected"':'', 
     $disabled?' disabled="disabled"':'', 
     '>'.$name.'</option>'; 
    } 
} 
?>
+0

完美,謝謝! :) – 3zzy 2010-02-25 11:49:46

+0

Np。如果你需要任何幫助將它擴展到optgroups和whatnot,請問;) – casraf 2010-02-25 12:07:45

0

當然,只是獲取文本文件導入使用file()一個數組,並創建選擇出來的。一個非常簡單的實現:menu.txt:

hongkong  Hong Kong 
taiwan   Taiwan 
mainland_china Mainland China 

注意值和標籤之間的標籤。

然後在PHP中:

$menu_items = file("menu.txt"); 

foreach ($menu_items as $menu_item) 
{ 
    // Explode 
    $menu_item_exploded = explode("\t", $menu_item); 
    $option_value = htmlspecialchars(trim($menu_item_exploded[0])); 
    $option_label = htmlspecialchars(trim($menu_item_exploded[1])); 

    echo "<option value='$option_value'>$option_label</option>"; 

} 

據我所看到的,您有下列留下來解決:

  • 如何預先設定的預定值(您需要回聲在右邊的項selected

  • 如何處理用戶編輯出從在您選擇預先設定的文本文件中的值。

  • 錯誤處理,如果該文件不存在或無法訪問

  • 錯誤處理,如果用戶砸了換行符,或類似的東西 - 也許算上線,和/或檢測是否有內部標籤該文件