空白问题

时间:2011-06-20 03:32:46

标签: php html

我从数据库获取数据,用于填充页面上的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

 }

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

也许尝试将空格字符替换为转义字符串&nbsp;

答案 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,'&nbsp;');