2014-01-24 113 views
1

我正在使用XML和PHP来填充Web表单下拉框。在html页面中包含php文件

我有一个HTML页面

<!DOCTYPE html> 
<html> 
<head> 
<title>Title of the document</title> 

</head> 

<body> 
<header> 
<h1>Title</h1> 
</header> 

    <form> 
     <div id ="select xml"> 
      <?php include 'dropdown.php'; ?> 
     </div> 
    </form> 
</body> 

</html> 

,我希望包括以下PHP生成的XML的文件名实际框。

<?php 
//echo(substr(glob("xml/*.xml")[0],4)); 

echo "<p> 
     <label>Select list</label><br> 
     <select id = \"selectxml\"> 
     <option value'0'>--Please Select--</option>"; 

     $count = count(glob("xml/*.xml")); 
     $files = glob("xml/*.xml"); 
     for ($i = 0; $i < $count; $i++) { 
      //echo(substr($files[$i],4)); 
      //echo "<br>"; 
     $filename = (substr($files[$i],4)); 
     echo "<option value=$i+1>$filename</option>"; 
     }  

echo "</select><br> 
     <br> 
     </p>"; 
?> 

我知道PHP并不完美,但它的工作原理。

问题是,包含HTML在我运行页面时不起作用 - 任何想法?

+1

是默认情况下,您的服务器将不处理PHP代码与.html扩展名的文件。 – Steve

回答

2

扩展名更改为.PHP,你会好起来的。

当页面有的.html扩展,Web服务器不能识别它作为一个PHP文件,你不能使用PHP码在里面。和任何代码,将被作为纯文本处理。

我的意思是,当你把:

<?php echo "hello" ?> 
HMTL

,浏览器会显示:

<?php echo "hello" ?> 

但是,如果页面有.PHP扩展,浏览器会显示:

hello 
0

它,是不可能的,但与jQuery.load功能,你可以这样做:

$("#select-xml").load("dropdown.php"); 
+0

这个php代码不会被web服务器以这种方式执行 –

+0

@AlirezaFallah为什么?! – mehdi

+0

,因为**在通过网络服务器处理页面后执行脚本**。它的唯一工作就是如果* dropdown.php *包含html,而不是php –