Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过按键从列表中传递变量_Php_Html_File - Fatal编程技术网

Php 如何通过按键从列表中传递变量

Php 如何通过按键从列表中传递变量,php,html,file,Php,Html,File,我的目标是读取目录,将项目添加到列表,添加单个按钮以删除文件,然后添加代码以删除所选文件。删除不是问题,但传递文件是有问题的 以下是我尝试过的: <?php if ($handle = opendir('userStorage/Storage1')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != &qu

我的目标是读取目录,将项目添加到列表,添加单个按钮以删除文件,然后添加代码以删除所选文件。删除不是问题,但传递文件是有问题的

以下是我尝试过的:

<?php

 if ($handle = opendir('userStorage/Storage1')) {
   while (false !== ($file = readdir($handle)))
      {
          if ($file != "." && $file != "..")
      {
            $filelocation = "userStorage/Storage1/$file";
            $thelist .= '<p1>'.$file.'</p1><form method="post">
            <button>Download</button>
            <button type="submit" name="delete'.$file.'" value="Submit" >Delete</button><br></form>';
          }
       }
  closedir($handle);
  }       
?>

<?php
if($_POST["delete'.$file.'"] == "Submit" ) {
    
        echo "File to be deleted: $file";
    }
  ?>

试试这个

<?php

if (isset($_POST['delete'])) {
    unlink(__DIR__ . DIRECTORY_SEPARATOR . $_POST['file']);
}

if (isset($_POST['download'])) {
    header('Location: ' . $_POST['file']);
}

$files = array_diff(scandir(__DIR__), ['..', '.']);

foreach ($files as $file) {
    echo "
        <p>{$file}</p>
        <form action='' method='POST'>
            <input type='hidden' name='file' value='{$file}'>
            <input type='submit' name='download' value='Download'>
            <input type='submit' name='delete' value='Delete'>
        </form>
    ";
}

您希望通过
$\u POST[“删除“.$file.”]
捕获什么?这只是一个值,而在循环中构建表时,使用不同的
n
值。你需要重新构造你的HTML。如何触发删除操作?这是常规表单提交还是AJAX?请指定您遇到的问题。您只需添加一个类型为hidden的输入,并为其命名为$file,然后您就可以使用$\u POSTHi获得值。这非常有效,谢谢,祝贺您的第一个答案!谢谢你很高兴看到这对你有帮助