我有下拉菜单:
<form id="page" name="page" mode="post" action="display.php">
<select name="car" id="car">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
</form>
我在这里有来自另一个用户的display.php示例来显示文本内容:
<?php
$file = $_POST['car'].'.txt';
$contents = file($file);
$string = implode("<br>", $contents);
echo $string;
echo "<br><br>";
?>
这会导致页面更改为display.php但不显示任何.txt文件内容。 当我使用foreach时(glob * .txt显示所有文本文件内容,原因很明显。但是我无法在当前配置中找到只显示所选文本的错误。请告知。
答案 0 :(得分:1)
要完成这项工作,您需要将select
框中的数据发布到PHP文件中。
theForm.php
中的HTML代码:
<form action="someFile.php" method="POST">
<select name="car" id="car">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<input type="submit value="Go"/>
</form>
这告诉浏览器当用户点击“开始”时,将数据从下拉框发送到someFile.php
,PHP可以使用它。
someFile.php
中的PHP代码:
<?php
$file = $_POST['car'] . '.txt';
$contents = file($file);
$string = implode("<br>", $contents);
echo $string;
?>
$_POST
数组是一个内置的PHP变量,包含从表单发送到服务器的信息。然后PHP使用该文本来确定应该读取哪个.txt
文件。然后从文件中读取该文件,并echo
编辑给用户。
因此,如果用户选择了Volvo
,则此代码将返回名为volvo.txt
的文件的内容。