我将单个文件名作为会话传递给我的HTML表单名称。我的第一个代码打印了我的目录“日记”中的文件列表,我试图在新页面readpage.html中打印所选文件的内容 但令我恐惧的是,因为我将会话$ _SESSION ['filename']作为变量传递,所有我的按钮都将我引导到我的会话变量已分配给的最后一个文件。
我可以做什么,以便每个按钮传递不同的文件名?我发现不可能将php变量作为我的表单输入名称传递,因为$ variable = $ _POST [PHP VARIABLE]不起作用..
note)我试图通过仅使用PHP(没有javascript,mysql表等)来实现这一点 谢谢
$folder = "diary";
$files = scandir($folder);
$fName = "diary/$file";
?><form method="POST" action="readPage.html"><?
foreach ($files as $file)
{
if($file != "." && $file != "..")
{
$_SESSION["file"] = $file;
$data = file_get_contents("diary/$file");
$info = explode("\t",$data);
?>
<input type="radio" name = <?=$_SESSION["file"] ?> >
<?=$info[0]?> <input type="submit" value = "Go" ><br>
<?
}
}
?></form><?
接收文件readpage.html
echo $_SESSION["file"];
$fOpen = "diary/".$_SESSION["file"];
$fData = file_get_contents($fOpen);
答案 0 :(得分:0)
你在这里用
打开了一个php片段&LT; ?,何时应该&lt; ?php
此
? &GT; &LT; form method =“POST”action =“readPage.html”&gt; &LT; ?php
不是这个
? &GT; &LT; form method =“POST”action =“readPage.html”&gt; &LT; ?
答案 1 :(得分:0)
您不需要使用会话。而不是$ _SESSION [“file”]使用$ _POST [“file”]。我在你的输入中添加了name attribute name =“file”,作为value属性我添加了文件名。在处理页面中,您可以在变量$ _POST [“file”]中访问文件名。
$folder = "diary";
$files = scandir($folder);
$fName = "diary/$file";
?><form method="POST" action="readPage.html"><?
foreach ($files as $file)
{
if($file != "." && $file != "..")
{
$data = file_get_contents("diary/$file");
$info = explode("\t",$data);
?>
<input type="radio" name="file" value="<? echo $file ?>" >
<?=$info[0]?> <input type="submit" value = "Go" ><br>
<?
}
}
?></form><?
处理表格:
echo $_POST["file"];
$fOpen = "diary/".$_POST["file"];
$fData = file_get_contents($fOpen);
当然你应该将表单操作更改为php脚本readPage.html到readPage.php