Javascript PHP删除错误

Javascript PHP删除错误,javascript,php,html,Javascript,Php,Html,我有一个下拉列表,其中填充了使用下面列出的PHP从目录中提取的文件,我正试图找出如何在选中这些文件时使用表单中的删除按钮删除它们 已解决编辑取消链接功能错误 尝试删除时仍出现错误: Error.array1{[Action]=>string6 Delete} <input type="hidden" name="Action" value="EDIT" /><input type="hidden" name="Selection" id="Selection" value="

我有一个下拉列表,其中填充了使用下面列出的PHP从目录中提取的文件,我正试图找出如何在选中这些文件时使用表单中的删除按钮删除它们

已解决编辑取消链接功能错误

尝试删除时仍出现错误: Error.array1{[Action]=>string6 Delete}

<input type="hidden" name="Action" value="EDIT" /><input type="hidden" name="Selection"  id="Selection" value="-1"><div>Below is the list of your saved codes. To edit your codes, select it from the list.</div>
<select size="1" name="CodeList" id="CodeList">
<?php
   $directory = $directory = 'users/' . $_SESSION['username'];
   $filesContents = Array();
   $files = scandir( $directory ) ;

    foreach( $files as $file )
   {
  if ( ! is_dir( $file ) )
 {
   $filesContents[$file] = file_get_contents($directory , $file);
      echo '<option value="'. $file .'">' . $file . '</option>';
   }
  }
?>
删除php脚本

   <?php
   session_start();
    $directory = $directory = $_SERVER['DOCUMENT_ROOT'] . '/users/' .      $_SESSION['username'];
    $file_to_delete = $_POST['CodeList'];
    if(is_file($directory .'/'. $file_to_delete) && is_writable($directory .'/'. $file_to_delete)) {
    if ( unlink ($directory.'/'.$file_to_delete) ) {
      echo $file_to_delete . " deleted.";
    } else {
  echo "Error.";
  }
 }
?>
<?php var_dump($_POST) ?>

我们可以使用Javascript来实现这一点

删除选项:

添加选项:


希望这会有帮助

您添加了选项,但没有选项值。选择框应如下所示:

<select name="identifier">
    <option value="value_1">Option 1</option>
    <option value="value_2">Option 2</option>
</select>
您的选项看起来像:Option x,这意味着您选择了一个选项,但它没有值no value=attribute

如果您查看PHP错误,我确实看到了正确的目录名,但没有附加文件名

您还应检查文件是否存在,以防止出现无此类文件错误:

if(is_file($directory .'/'. $file_to_be_deleted) && is_writable($directory .'/'. $file_to_be_deleted)) {
    // delete the file
}
是的,我使用is_文件和is_可写测试,因为如果选中的路径是目录,is_可写函数也将返回true

编辑

要分配值,请按如下方式更改foreach循环:

<select size="1" name="CodeList" id="CodeList">
    <?php
    // fetch files etc.

    foreach( $files as $file ) {
        if ( ! is_dir( $file ) {
            echo '<option value="'. $file .'">' . $file . '</option>';
        }
    }

哦,顺便说一句:去掉获取文件内容部分。您没有对那里的文件内容执行任何操作,是吗?

谢谢您的帮助!我不确定我写的是否正确,我将我所做的和结果放在了我的原始帖子中。感谢您对代码的澄清,输入它就像您在我的头部和表格下方一样,并且尝试删除所选文件仍然会返回取消链接的错误。作为新手,我深表歉意,我不确定是否需要更改这些选项值或保持原样。请在使用取消链接功能之前使用file_exist函数。请注意,您的delete.php可能被滥用以删除服务器上的任何文件。您必须验证$\u POST['CodeList']!@BlackDevil的JS在这里是无用的…谢谢georg,在尝试修复其他错误后,我会在上线前查看如何验证它。谢谢Giorgio的帮助我正在更新我的php文件,下拉列表的问题是我不知道我必须分配值。该列表由他们保存在用户目录中的文件填充,这些文件可能是任意数量的,除非我限制它,所以我不确定如何为它们赋值。谢谢Giorgio,我现在正在尝试,在php中添加其他字符串会清除任何错误,只是返回数组错误,但将通过添加文件进行测试。一旦他们选择了文件,它实际上会将文件名和内容发布到页面上的一个表单中,这就是我为什么要使用get_file_ContentsA好的,你在脚本的其他地方使用这些内容,我明白了:在这种情况下,忽略我的评论,虽然我会把它放在那里,以防其他人也这么做,并且不明确使用文件内容。我是这样做的,我只是没有在那里,没有担心,我很感激你提到我有什么错误,现在尝试你的更改。我能够通过清理东西来解决它,将“删除”按钮放在正确的位置,并正确包装我的表单以包含dropdwown。谢谢你对乔治的帮助。
echo $_POST['identifier']; // prints out 'value_2';
if(is_file($directory .'/'. $file_to_be_deleted) && is_writable($directory .'/'. $file_to_be_deleted)) {
    // delete the file
}
<select size="1" name="CodeList" id="CodeList">
    <?php
    // fetch files etc.

    foreach( $files as $file ) {
        if ( ! is_dir( $file ) {
            echo '<option value="'. $file .'">' . $file . '</option>';
        }
    }