我从数据库获取数据,用于填充页面上的select
元素(列表)。
存储的数据在我的数据库中有两个空格:"ABC CDE"
。
当我将值放在select
列表中时,会删除其他空格,从而将其留给"ABC CDE"
。但每次我获取数据并记录它时,它仍然有两个空格。
问题在于,如果我需要在DB中查找某些东西,使用名称不会返回任何内容,因为空格不同。
$query = "SELECT * from Member.people";
$logger->debug($query);
$result = mysql_query($query);
$num = mysql_num_rows($result);
while ($row = mysql_fetch_array($result)) {
$op = $row['Name']; //ABC DE
echo '<option>'.$op.'</option>'; //ABC DE
}
有人可以帮忙吗?
答案 0 :(得分:1)
也许尝试将空格字符替换为转义字符串
答案 1 :(得分:1)
Consecutive white spaces in HTML are collapsed:
特别是,用户代理应在生成输出字间空间时折叠输入空格序列。
但它们保留在属性中。您必须正确设置value
属性,它才能正常工作:
echo '<option value="' . $op . '">'.$op.'</option>';
如果你不这样做the content of the elements is used as value:
此属性指定控件的初始值。如果未设置此属性,则将初始值设置为OPTION元素的内容。
正如您已经注意到的那样,只有一个空格(因为它已折叠)将为您提供值。
答案 2 :(得分:0)
HTML中的多个空格在视图中进行规范化。这就是为什么我可以做这样的事情:
<p>Hello World</p>
显示为“Hello World”。
将字符串替换为“”以及&amp; nbsp; - 这应该可以解决你的问题:
$op = $row['Name'].replace(/\s/g,' ');