2017-08-10 11 views
0

//ここではStackで見つかったコードを使用していますが、うまく機能しますが、選択したフォルダに最新の画像ファイルのみが削除されます。私は選択したイメージファイルを削除する方法を理解しようとしています。これには解決策がありますか?ajaxでフォルダ内の選択したファイルを削除する

<?php 

$images = glob($dirname."*.jpg"); 

echo "<table width='100%'><tr>"; 
foreach($images as $image) { 
$imagedisplay = $dirnameforimage.basename($image); 
echo '<td><img src="'.$imagedisplay.'" style="max-height:75px; max-width:150px">'; 
echo '<input type="hidden" value="'.$image.'" id="delete_file" />'; 
echo '<input type="button" value="Delete image" onclick="delete_image()"/></td>'; 


} ?> 

<script type = 'text/javascript'> 
function delete_image() 
{ 
var status = confirm("Are you sure you want to delete ?"); 
if(status==true) 
{ 
var file = $("#delete_file").val(); 

$.ajax({ 
    type:"POST", 
    url:"multimage/ImageLap.php", 

data: {file:file}, 

success(html){alert('Deleted');},  

</script> 
+0

削除部分ファイルは_multimage/ImageLap.php_ファイルにあるはずです。このファイルには何が含まれていますか? –

+1

HTMLの 'id'値を再利用しています。 '$("#delete_file ")'を選択すると、どちらが*使用すると思いますか?同じ 'id'を持つ複数の要素は無効なHTMLです。 – David

答えて

0

現在、無効である、あなたのHTML、中に再使用してid値です。だから、これを行うとき:

$("#delete_file").val() 

システムは、あなたが探しているこれらの要素のどちらを知る方法はありません。

値を隠し要素に入れてからそれを探し出すのではなく、値を関数に直接渡すだけです。

foreach($images as $image) { 
    $imagedisplay = $dirnameforimage.basename($image); 
    echo '<td><img src="'.$imagedisplay.'" style="max-height:75px; max-width:150px">'; 
    echo '<input type="button" value="Delete image" onclick="delete_image(\''.$image.'\')"/></td>'; 
} 

次に、あなたのdelete_image()機能であなたはすでにあなたが関数の引数として渡され、それを探しに行く必要はありません必要な値を持っているでしょう:このような何か

function delete_image(file) { 
    // just remove the "var file = ..." line, everything else stays the same 
} 
+0

それはそれをしました!ダビデありがとう! – EPH

関連する問題