Php 如何在HTML下拉列表中设置文本格式
我的HTML代码中有一个下拉菜单,其中充满了PHP while循环。 例如:Php 如何在HTML下拉列表中设置文本格式,php,html,format,dropdown,Php,Html,Format,Dropdown,我的HTML代码中有一个下拉菜单,其中充满了PHP while循环。 例如: <select name="dd1" class="form-control" id="dd1"> <option value="" disabled="disabled" selected>Select...</option> <?php while($row = mysqli_fetch_array($sql, MYSQL_ASSOC)){ ?
<select name="dd1" class="form-control" id="dd1">
<option value="" disabled="disabled" selected>Select...</option>
<?php
while($row = mysqli_fetch_array($sql, MYSQL_ASSOC)){
?>
<option value="<?php echo $row['ID'] ?>"> <?php echo $row['PName'] . "\t | " . $row['AName'] ?> </option>
<?php
}
?>
</select>
选择。。。
我想在名称1和名称2之间做一个制表。我尝试使用\t执行此操作,但已被忽略。
有人知道我能做什么吗
如果我使用&emsp;看起来是这样的:
<select name="dd1" class="form-control" id="dd1">
<option value="" disabled="disabled" selected>Select...</option>
<?php
$widthLeft = 30; // width in symbols
$widthRight = 30; // width in symbols
$separator = '|';
while ($row = mysqli_fetch_array($sql, MYSQL_ASSOC)) {
$optionFormatted = mb_strpad($row['PName'], $widthLeft)
. $separator
. mb_strpad($row['AName'], $widthRight);
$optionHtml = str_replace(' ', ' ', $optionFormatted);
?>
<option value="<?php echo $row['ID'] ?>"> <?php echo $optionHtml ?> </option>
<?php
}
?>
</select>
我希望所有的第二个名字,也就是以|开头,都有相同的位置。您可以使用
&emsp
而不是\t
,然后查看您的输出
<select name="dd1" class="form-control" id="dd1">
<option value="" disabled="disabled" selected>Select...</option>
<?php
while($row = mysqli_fetch_array($sql, MYSQL_ASSOC)){
?>
<option value="<?php echo $row['ID'] ?>"> <?php echo $row['PName'] . "  | " . $row['AName'] ?> </option>
<?php
}
?>
</select>
选择。。。
您可以使用空格填充字符串,然后将空格替换为
(前提是使用单空格字体):
选择。。。
只需使用4
,它就可以复制@JoeBlack不,不是的,请阅读我的编辑,但它们的长度不尽相同,所以它们的名字有不同的位置,我编辑我的帖子,所以你可以看到我的意思谢谢你,部分有效。如果有像äüö或ß这样的乌姆劳特,那是不正确的anymore@Alex请检查我答案的更新,关于多字节字符串。
<?php
function mb_strpad(string $input, int $pad_length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, string $encoding = 'UTF-8'): string
{
$diff = $pad_length - mb_strlen($input, $encoding);
if ($diff <= 0) {
return $input;
}
$pad = str_pad('', $diff, $pad_string);
if ($pad_type === STR_PAD_LEFT) {
return $pad . $input;
}
return $input . $pad;
}
<select name="dd1" class="form-control" id="dd1">
<option value="" disabled="disabled" selected>Select...</option>
<?php
$widthLeft = 30; // width in symbols
$widthRight = 30; // width in symbols
$separator = '|';
while ($row = mysqli_fetch_array($sql, MYSQL_ASSOC)) {
$optionFormatted = mb_strpad($row['PName'], $widthLeft)
. $separator
. mb_strpad($row['AName'], $widthRight);
$optionHtml = str_replace(' ', ' ', $optionFormatted);
?>
<option value="<?php echo $row['ID'] ?>"> <?php echo $optionHtml ?> </option>
<?php
}
?>
</select>