我有一个精选的PHP脚本,其中部分是:
while($row = mysqli_fetch_array($result))
{
echo "<option>" . $row['firstname'] . $row['lastname'] . "</option>
}
echo "</select>";
echo "</div>";
问题是行,我希望它们出现在&#34; John Doe&#34;它现在的样式是&#34; John Doe&#34;
我尝试将其更改为:。 $row['firstname'] . " " . $row['lastname'] .
但是这会在以后的程序中引起问题,因为John Doe因为某些原因将其读作John Doe而不会读取该名称。 (额外空间)
答案 0 :(得分:1)
您可以输出文字空间:
echo "<option>" . $row['firstname'] . " " . $row['lastname'] . "</option>"
另请注意,您可以为value=""
设置<option>
属性,以便显示任何输出:
echo "<option value=\" . $row['firstname'] . " " . $row['lastname'] . \">Something Different</option>"
答案 1 :(得分:1)
$row['firstname'] . " " . $row['lastname']...
出了什么问题? (这是一个修辞问题。你应该怎么做)。
答案 2 :(得分:1)
如果firstname字段可能为空,您可能需要进行一些修剪,以确保不在姓氏上插入前导空格。
echo "<option>" . trim(trim($row['firstname']) .' '. $row['lastname']) . "</option>";
答案 3 :(得分:0)
echo "<option>" . $row['firstname']." ".$row['lastname'] . "</option>
答案 4 :(得分:0)
echo "<option>$row[firstname] $row[lastname]</option>";
应该适合你。 (注意引号的位置。)
此外,为了以后的识别,您可以在选项中添加“值”标记吗?
答案 5 :(得分:0)
您的代码存在的问题是$row['lastname']
会直接附加到$row['firstname']
。要解决这个问题,只需在两者之间放置一个空格:
echo "<option>".$row['firstname']." ".$row['lastname']."</option>";
答案 6 :(得分:0)
您需要稍后在程序中修复它并首先回显您想要的空间。
在字符串中搜索双空格并用一个空格替换它们:
$str ='John Doe'
$str = str_replace(" ", " ", $str);
答案 7 :(得分:0)
或者,在您的MySql查询中,您可以执行类似的操作。
$sql = "SELECT CONCAT(`firstname`, ' ', `lastname`) AS `fullname` FROM `TABLENAME`";
你的PHP循环看起来像这样
while($row = mysqli_fetch_array($result))
{
echo "<option>" . trim($row['fullname']) . "</option>"; //just incase, we trim it
}