我在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>
答案 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
)
如何处理用户从您选择中预先设置的文本文件中编辑值。
如果文件不存在或无法访问,则处理错误
错误处理如果用户搞砸了换行符或类似的东西 - 可能会计算行数,和/或检测文件中是否有标签