2011-07-15 53 views
1

我試圖創建一個由數組填充的下拉框。當我查看我的代碼時,瀏覽器只顯示部分php代碼。PHP在HTML中無法正確顯示

這裏是瀏覽器顯示的內容:

'; foreach ($array as $value) { $html .= ' 
$value 
'; } $html .= ''; return $html; } ?> 

這裏是我的代碼:

<html> 
<head> 
<title>test</title> 
<?php 

$cities = array('San Francisco', 'San Diego', 'Los Angeles'); 

function createDropDown($name, $array) { 

    $html = '<select name=$name>'; 

    foreach ($array as $value) { 
    $html .= '<option value="$value">$value</option>'; 
    } 
    $html .= '</select>'; 
    return $html; 
} 
?> 
</head> 
<body> 
<form> 

<?php 
createDropDown("cities", $cities); 
?> 

</form> 
</body> 
</html> 
+3

你確定你的服務器支持PHP嗎? –

+1

將來的參考:如果使用雙引號,則只能在字符串中嵌入變量。否則,您需要像下面的@AlienWebguy那樣連接。 – wanovak

回答

1

最有可能你的服務器沒有配置處理.php文件作爲PHP腳本,併爲他們服務了爲html /明文。如果您查看該頁面正在發生,您可能會獲得完整的PHP源代碼。 <?php被視爲一個開放的HTML標籤,它直到foreach循環之前才被關閉,因此所有中間文本/代碼都在HTML視圖中「隱藏」。

+0

就是這樣。謝謝! – Biggsy

1

變化

$html = '<select name=$name>'; 

$html = '<select name="' . $name. '">'; 

變化

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

$html .= '<option value="' . $value . '">' . $value. '</option>'; 
2

您還需要回顯您的輸出。你建立的字符串,但從來沒有輸出。

<html> 
<head> 
<title>test</title> 
<?php 

$cities = array('San Francisco', 'San Diego', 'Los Angeles'); 

function createDropDown($name, $array) { 

    $html = '<select name="' . $name . '">'; 

    foreach ($array as $value) { 
    $html .= '<option value="' . $value . '">' . $value . '</option>'; 
    } 
    $html .= '</select>'; 
    return $html; 
} 
?> 
</head> 
<body> 
<form> 

<?php 
echo createDropDown("cities", $cities); 
?> 

</form> 
</body> 
</html> 
0

'不分析,但"一樣。

$html = "<select name=$name>"; 

會做到這一點。