嗨我正在构建一个像这样的html选择元素:
$result = mysql_query("SHOW COLUMNS FROM table") or die(mysql_error());
echo '<select name="column" class="column">';
while ($row = mysql_fetch_array($result))
{
if($row[0] == 'id' || $row[0] == 'tstamp' || $row[0] == 'boiler2oil')
continue;
echo "<option value='".$row[0]."'>".ucwords($row[0])."</option>";
}
echo '</select>';
我在表格中命名列的方式相当丑陋,有下划线等...我怎样才能重命名它们以便我可以更改选择元素显示(值可以保持不变)更改某些东西更具可读性和视觉上的愉悦。这可能吗?它会是某种preg_match / preg_replace吗?
答案 0 :(得分:1)
它可以单独使用str_replace
完成,对于像这样的简单事情,这比preg_replace
更有效。
答案 1 :(得分:1)
取决于您要将其重命名为。你想做一些简单的事情,比如删除下划线吗?是否有规则可以用来清理它们?
如果没有,为什么不添加一个哈希,其条目从表中的名称映射到您要为下拉列表打印出来的名称?
# map from column name to display name
$labels = array(
'col1' => 'Column 1',
...
);
$result = mysql_query("SHOW COLUMNS FROM table") or die(mysql_error());
echo '<select name="column" class="column">';
while ($row = mysql_fetch_array($result))
{
if($row[0] == 'id' || $row[0] == 'tstamp' || $row[0] == 'boiler2oil')
continue;
# use a more friendly name if one has been defined above in $labels
if(array_key_exists($row[0], $labels))
$label = $labels[$row[0]];
else
$label = $row[0];
echo "<option value='".$row[0]."'>".$label."</option>";
}
echo '</select>';
答案 2 :(得分:0)
您可以定义一个数组,其中columnName为“key”,Name为Display显示为“value”。然后是这个数组的Echo元素而不是显示列名。