2016-08-15 8 views
2
<table> 
<thead> 
    <tr> 
     <th>File</th> 
     <th>Delete</th> 
    </tr> 
</thead> 
<tbody > 
<?php foreach($objects as $object): ?> 
    <tr> 
     <td><?php echo basename($object['Key']); ?></td> 
     <td> 
      <form method='post' action='delete.php'> 
       <?php 
        if (isset($_POST['delete'])) { 
         $s3->deleteObject([ 
         'Bucket' => $bucket, 
         'Key' => $object['Key'] 
         ]); 
        } 
       ?> 
       <input type="submit" name="delete"> 
      </form> 
     </td> 
    </tr> 
<?php endforeach; ?> 
</tbody> 

HI。私には、削除ボタン付きのファイルのリストがあるテーブルがあります。私はそれの横にあるボタンをクリックすると、単一のファイルを削除したい。しかし、$ object ['Key']変数を使用している場合、リストされているすべてのファイルが削除されます。たぶん、foreachのため。aws s3 phpファイル一覧上のオブジェクトを削除

助けてください。 :)。私はPHPのnoob。

私の英語のために残念です。

+0

ファイルごとに1つのフォームがあります 別のフィールドにキーを渡す必要があると思います(おそらく隠されています)。 key_to_deleteを呼び出し、foreachループの - > deleteObjectを呼び出す – cmnardi

+0

'isset($ _ POST [' delete ']'はtrueを返します... – cmnardi

答えて

0

'ISSET($ _ POST [' DELETのE ']' あなたは1つのファイルだけを削除したい場合は遠かった私は、foreachループの$s3->deleteObject外を呼び出すためにsugest、... をtrueを返します

<form method='post' action='delete.php'> 
<input type="hidden" name="keyToDelete" value="<?php echo $object['Key']; ?>" 
    <input type="submit" name="delete"> 
</form> 

そしてPHP私は削除するファイルを選択することができますので、私はちょうどチェックボックスを追加し、この

<?php 
       if (isset($_POST['delete'])) { 
        $s3->deleteObject([ 
        'Bucket' => $bucket, 
        'Key' => $_POST['keyToDelete'] 
        ]); 
       } 
      ?> 
+0

[Submit]ボタンをクリックするとファイルが削除されますが、しかし、あなたは私にアイデアを与えてくれます。ありがとうございます:DDD。 – jonieses

0

のようなものを試してみてください。D

<table> 
    <thead> 
     <tr> 
      <th">File</th> 
     </tr> 
    </thead> 
    <tbody > 
    <?php foreach($objects as $object): ?> 
    <tr> 
     <td> 
      <form action="#" method="post"> 
       <input type="checkbox" name="check[]" value="<?php echo $object['Key']; ?>"> 
       <?php echo basename($object['Key']); ?> 
     </td> 
    </tr> 
    <?php 
     @$check = $_POST['check']; 

     endforeach; 

     if (isset($_POST['delete'])) { 

      if(!empty($check)){ 

       foreach($check as $selected){ 

        $s3->deleteObject([ 
         'Bucket' => $bucket, 
         'Key' => $selected 
         ]); 
       } 
      }else{ 
       echo 'Please select a file to delete'; 
      } 
     } 
          ?> 
       <input type="submit" name="delete"> 
      </form> 
    </tbody> 
</table> 
+0

大丈夫ですが、あなたのフォームタグは '

'の外にあるはずです。 – cmnardi

関連する問題