2011-05-01 45 views
0

我比较这两个字符串时遇到问题,我不完全确定发生了什么,但是当值包含空格并且等于应该为true时,它将返回false,尽管它完美地适用于没有空格的字符串。如果HTML/PHP字符串值与空格比较

我有一种鬼鬼祟祟的感觉,需要为NBSP或其他东西准备一些preg,但我完全迷失在做什么......我所指的行将有星星。这里

function getRecords($column,$table){ 

     $options = ""; 

      if(isset($_POST['submit'])) { 
       $selected = $_POST[$column]; 
      }  

     $query = "SELECT DISTINCT $column FROM $table ORDER BY $column ASC"; 
     $result = mysql_query($query); 

     if(!$result) { 
      $options = "<option>Error Retrieving Records</option>\n";; 
     } 

     else { 
      while($row=mysql_fetch_assoc($result)) { 
       $value = $row[$column]; 

       $options .= "<"; 
        $options .= "option value="; 
         $options .= $value; 

更正,谢谢ridgerunner!

    $options .= "option value=\""; 
        $options .= $value."\""; 

//define selected value if it exists   
        if(isset($selected)) { 
***************   if($selected==$value) { 
          $options .= " selected"; 
         } 
          $options .= ""; 
        } 
       $options .= ">"; 
       $options .= $value; 
       $options .= "</option>\n"; 
      } 
     } 

     return $options; 
    } 
+1

打印'selected'和'value'的结果,您将很容易就能看出差异在哪里。 – 2011-05-01 16:38:06

+0

请提供$ value的print_r()详细信息。另外,如果$ _POST ['submit']被设置,$ selected仅被定义。 – SteAp 2011-05-01 16:39:28

回答

2

你需要用引号引起来的OPTION属性值。相反的:

$options .= "option value="; 

用途:

$options .= "option value=\""; 

而且做的收盘报价同样的事情。为了安全起见,您可能还需要将$value中的双引号转换为&quot;

+0

我的天啊,你解决了它!它在我的代码中看起来有点奇怪......但它起作用!'$ options。=“option value = \”“; \t $ options。= $ value。”\“”;' – 2011-05-01 17:05:45