按下提交按钮后,在html页面中显示所选文本文件

时间:2013-05-06 05:42:27

标签: php html

大家好日子 好的,所以我已经完成了我的理解,需要一些指导和帮助。目前我对html / php很新,所以请耐心等待。计划是在下拉列表中列出Dir中的文本文件,这是我已经完成的,现在我想在提交按钮按下时在表格中的同一页面中显示文本文件。这是我到目前为止所有的欢迎,因为我还在学习! bash脚本只是一个grep函数,用于从原始文件中获取特定行并将其复制到/ tmp。 再次感谢

<html>
<head>
<title>Data Request</title>
</head>
<body>
<h1 align="center">Dispatch Report</h1>
<h2 align="center">Wrong Arrives Report</h2>

<table align="center" border="2">
<tr>
<td>Select Shift<br>
<form name="shiftfrm" id="shiftfrm">
<select name="shiftlist" id="shiftlist">
  <option value="" selected="selected">--------</option>
<?php
$dir = opendir ("/var/www/files/");
    while (false !== ($file = readdir($dir))) {
            if (strpos($file, '.txt',1)) {
                echo '<option value="' . $file . '">' . $file . '</option>';
            }
    }
?>
</select>
<input type="submit" id="submit" value="Submit"/>

<?php
if( ($handle = fopen( '/tmp/sh130418n.txt', 'r' )) !== false )
{
$output = '<table align="center" width="" border="2">';
while( ($data = fgetcsv( $handle )) !== false )
{
    $output .= '<tr>';
    foreach( $data as $value )
    {
        $output .= sprintf( '<td>%s</td>', $value );
    }
fclose( $handle );
$output .= '</table>';
}
echo $output;
?>

</td></tr>
</table>

<?php
$output = exec('/var/www/cgi-bin/manualexceptget.sh');
echo "<pre>$output</pre>";
?>

</body>
</html>

2 个答案:

答案 0 :(得分:0)

假设<form method="post" action="">。增加文件阅读代码:

if(!empty($_POST['shiftlist'])) {
    $file = 'files/'.$_POST['shiftlist'];
    if(file_exists($file)) {
        if( ($handle = fopen( $file, 'r' )) !== false )
        {
            $output = '<table align="center" width="" border="2">';
            while( ($data = fgetcsv( $handle )) !== false )
            {
                $output .= '<tr>';
                foreach( $data as $value )
                {
                    $output .= '<td>'.$value.'</td>';
                }
                $output .= '</table>';
            }
            echo $output;
            fclose( $handle );
        }
    }
}

编辑:修正了下面所述的isset()问题。更改了一些代码,$ handle在阅读完成之前就已关闭。

Edit2:我只是把它放在编辑器中,并看到许多未正确放置的html标签(例如表格未关闭)。工作样本位于pastebin(在xampp上测试)

答案 1 :(得分:0)

尝试这样的(.txt)文件..

<html>
<head>
<title>Data Request</title>
</head>
<body>
<h1 align="center">Dispatch Report</h1>
<h2 align="center">Wrong Arrives Report</h2>

<table align="center" border="2">
<tr>
<td>Select Shift<br />
<form name="shiftfrm" id="shiftfrm" method="POST">
<select name="shiftlist" id="shiftlist">
  <option value="" selected="selected">--------</option>
<?php

$dir = opendir("files/");
while (false !== ($file = readdir($dir)))
{
    if (strpos($file, '.txt', 1))
    {
        echo '<option value="' . $file . '">' . $file . '</option>';
    }
}

?>
</select>
<input type="submit" name="submit" id="submit" value="Submit"/>
<br />
<?php

if (isset($_POST['submit']) && isset($_POST['shiftlist']))
{
    if ($handle = file_get_contents('files/' . $_POST['shiftlist']))
    {
        $output = '<table align="center" width="" border="2">';
        $output .= '<tr><td>';
        echo $handle;
        $output .= '</tr></td>';
        $output .= '</table>';
    } else
    {
        echo "No Content";
    }
} else
{
    echo "Please select the file";
}

?>
</td>
</tr>
</table>
</body>
</html>