多列下拉格式化文本

时间:2014-09-23 10:32:17

标签: php mysql

我的第一个问题 - 新的php ...
我在php中有一个下拉/组合框,其中来自MySQL的数据由以下循环填充

while($row = mysql_fetch_array($rs)){<br>
    echo 'option value="',$row['ContactID'],'" ',$row['ContactName'],' ----',$row['Phone1'],' ---- ',$row['Email1'],' /option';"
}

上面的回声中缺少V形符号/尖括号......

下拉列表中的输出类似于......

xxxxxxxx----yyyy----zzzzzzz
xxxx----yyyyyy----zzzzzzzzzzz
xx----yy----zz
etc.

如何格式化3列宽度? 我希望输出像这样......

xxxxxxxx yy      zzzzz
xx       yyyy    zzzz
xxxx     yyy     zzzzzzz

昨天我花了很多时间玩printf和sprintf。我会先查看

1 个答案:

答案 0 :(得分:0)

不确定我是否正确理解您要实现的目标。但对于这个答案,我假设您正在寻找格式良好的输出,如下所示:

xxxxxxxx ----   yyyy ----     zzzzzzz
    xxxx ---- yyyyyy ---- zzzzzzzzzzz
      xx ----     yy ----          zz

您应该查看printf()(分别为sprintf())函数。借助此功能,您可以格式化字符串。在您的示例中,这可以像这样工作:

while($row = mysql_fetch_array($rs)){
    echo '<option value="' . $row['ContactID'] . '">' .
             sprintf("%10s", $row['ContactName']) .
             sprintf("%10s", $row['Phone1']) .
             sprintf("%10s", $row['Email1']) .
         '</option>';
}

这会用空格填充输出,直到字符串的长度为10个字符(将10中的%10s更改为所需的长度)。最小长度应至少等于输出字符串的可能最大长度。

但请记住,HTML中会忽略多个空格,除非您使用显式空格(&nbsp;),或者将内容放入保留空格的标记中,例如<pre></pre>。不确定在下拉菜单中是否有必要。