我已經成功設法通過php從目錄中讀取文件,並動態創建一個下拉菜單,我可以在其中查看文件的內容。不過,我通過調用另一個PHP頁面來完成此操作。有沒有辦法在同一頁面中顯示文本文件的內容?我知道這可以通過Ajax來實現,但我找不到任何示例。顯示內容 - 點擊同一個php頁面內的按鈕
感謝
<html>
<head>
<link rel="icon" type="image/png" href="logo.png">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function populateIframe(id,path)
{
var ifrm = document.getElementById(id);
ifrm.src = "download.php?path="+path;
}
</script>
<body>
<?php
//"file_to_be_displayed" is the name of the dropdown
$selectedfile = @$_POST['file_to_be_displayed'];
$path ="$selectedfile";
$content = file($selectedfile);
$data = implode("<br>",$content);
echo $data;
?>
<?php
$dirname = "<path>";
$dir = opendir($dirname);
echo '<form name="displayfile" action="print_output_file.php" method="POST" target="_blank">';
echo '<select name="file_to_be_displayed">';
echo '<option value="">Select File</option>';
while(false != ($file = readdir($dir)))
{
if(($file != ".") && ($file != ".."))
{
echo "<option value=".$file.">$file</option>";
}
}
echo '</select>';
echo '<input type="submit" value="display content of file"/>';
echo '</form>';
?>
</head>
</form>
<iframe id="frame1" style="display:none"></iframe>
<a href="javascript:populateIframe('frame1','<?php echo $path; ?>')">download</a>
</body>
</html>
print_output_file.php功能
<html>
<body>
<?php
$myFile =$_POST['file_to_be_displayed'];
$myFile1 ="http://<file path>/"."$myFile";
$lines = file("$myFile1");
$fileString = file_get_contents("$myFile1");
echo nl2br(htmlspecialchars($fileString));
echo '<br>';
?>
</body>
</html>
的download.php功能
<html>
<body>
<?php
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=".$_GET['path']);
readfile($_GET['path']);
?>
</body>
</html>
'download.php'是否有效?你有沒有搜索AJAX? – putvande
嗨@putvande download.php目前無法正常工作,但目前我並不關心它。我已經搜索了AJAX,並在網上找到了一些例子,但不知道如何使用php中的'$ myFile'變量來指示AJAX顯示特定文件 – Pantelis