2013-03-05 24 views
0

我正在使用ajax在點擊「卡片」時調用文件來顯示對話框。它正常工作正常的HTML與PHP,但現在,我已經將它保存爲一個PHP變量,它不喜歡if語句和下拉菜單總是顯示默認的「選擇」選項。這可以做到嗎?或者,也許我只是寫錯了?如何在php變量中使用if語句?

$html.="<select name='priority'>"; 
$html.="<option>---Choose---</option>"; 
$html.="<option if ($priority == 'Low') echo 'selected' value='Low'>Low</option>"; 
$html.="<option if ($priority == 'Normal') echo 'selected' value='Normal'>Normal</option>"; 
$html.="<option if ($priority == 'High') echo 'selected' value='High'>High</option>"; 
$html.="<option if ($priority == 'Critical') echo 'selected' value='Critical'>Critical</option>"; 
$html.="</select>"; 

回答

5

它應該做的事是這樣的:

$html .= "<option " . 
     (($priority == 'Low') ? 'selected' : '') . 
     " value='Low'>Low</option>"; 

不使用三元操作符:

$html .= "<option "; 

if ($priority == 'Low') { 
    $html .= 'selected'; 
} 

$html .= " value='Low'>Low</option>"; 
+0

確實,只是連接結果而不是將其嵌入到字符串中。 – 2013-03-05 21:19:24

+0

作爲參考,他使用三元運算符:http://www.php.net/manual/en/language.operators.comparison.php – Mike 2013-03-05 21:20:14

+1

您可能想寫沒有三元 - 也很明顯,要求isn我不太熟悉這種事情。 – 2013-03-05 21:20:34

1

你可能忘了差異。你在雙引號中的所有內容都是一個字符串。試試三元:

 $priority = "Normal"; 
     $html = ""; 

     //Use from here 
     $html .= "<select name='priority'>"; 
     $html.="<option>---Choose---</option>"; 
     $html.="<option "; 
     $html.= (($priority == 'Low') ? 'selected' : ''); 
     $html.=" value='Low'>Low</option>"; 
     $html.="<option "; 
     $html.=(($priority == 'Normal') ? 'selected' : ''); 
     $html.=" value='Normal'>Normal</option>"; 
     $html.="<option "; 
     $html.=(($priority == 'High') ? 'selected' : ''); 
     $html.=" value='High'>High</option>"; 
     $html.="<option "; 
     $html.=(($priority == 'Critical') ? 'selected' : ''); 
     $html.=" value='Critical'>Critical</option>"; 
     $html.="</select>"; 
     echo $html; 
     exit; 

測試!