2011-07-15 133 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>"; 

会做到这一点。