从.txt创建选择下拉列表?

时间:2010-02-25 09:46:57

标签: php wordpress select automation

我在wordpress(php)主题中有一个硬编码的选择菜单,但是经理需要经常编辑它们。是否可以从文本文件导入中填充选择下拉选项?所以他只需要编辑文本文件,菜单选项就会改变。

当前菜单如下所示:

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

2 个答案:

答案 0 :(得分: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>';
    }
}
?>

答案 1 :(得分: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

  • 如何处理用户从您选择中预先设置的文本文件中编辑值。

  • 如果文件不存在或无法访问,则处理错误

  • 错误处理如果用户搞砸了换行符或类似的东西 - 可能会计算行数,和/或检测文件中是否有标签