2011-05-01 42 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