2016-07-04 3 views
0

AJAX呼び出しでデータベースからファイルを削除しようとしています。しかし、私は何かが行方不明になっていると思います。私は* del1だけ得ています。$ row1 ['id']。 " * del idの代わりに...助けてください。jqueryデータベースからAJAXスクリプトを削除する

//私の主なファイル//

<html> 
<body> 
    <script src="assets/js/jquery.min.js"></script> 
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main"> 
<h3><p align="center"><u>Filer ladda upp och ned</u></p></h3> 
<div class="table-responsive"> 
<form enctype="multipart/form-data" action="" name="form" method="post"> 
<table id="files" border="1" align="center" id="table1" cellpadding="0" cellspacing="0"> 
<tr><td align="center">DOWNLOAD</td></tr> 
<?php 
$select=mysql_query("select * from upload order by id desc"); 
while($row1=mysql_fetch_array($select)){ 
    $name=$row1['name']; 
?> 
<tr> 
<td width="300"> 
<img src="files/tick.png" width="14" height="14"><p><?php echo $name ;?></p> 
     &nbsp; &nbsp;<a data-value=".$row1['id']." id=del".$row1['id'].">Delete</a> 
</td> 
<?php }?> 
</tr> 

</table> 
<script src="assets/js/jquery.min.js"></script> 
<script> 

    $(".del<?php echo $row1['id']; ?>").click(function() { 
     if (confirm("Are you sure want to delete?")) { 
     var delcart = $(this).data('value'); 
     //alert(delcart); 
     $.ajax({ 
      type: "GET", 
      url: "del_file.php", 
      data: {id : delcart}, 
      success: function (data) { 
       if (data) { 
        //alert('data'); 
        window.location.reload(); 
        } 
        } 
        }); 
     } 
     //alert($(this).data('value')); 
     }); 
    </script> 



</form> 
</div> 
</div> 
<br /> 
<br /> 


</body> 
</html> 

//マイdel_file.php //

<?php 
$del_id = $_GET['id']; 
echo $del_id; 
include'config.php' ; 
$delete_item = mysql_query("delete from upload where id = $del_id "); 
if($delete_item){ 
    echo '1'; 
}else{ 
    echo '0'; 
} 
?> 

ありがとうございました。

+0

はあなたのコードをデバッグする必要があり、クエリを削除することの$ del_idが取得するかしませんか? –

+0

'alert(delcart);に適切なIDを持っていますか? – jitendrapurohit

+0

@Anandjainは動作しません。 –

答えて

2

あなたは間違った方法で物事をやっているお試しください。 $row1['id']<?php ?>なしでは、ループからのidではなく、$row1['id']の文字列だけが出力されます。別のことは、JavaScriptのセレクタが完全に無効であることです。ループの外にあり、全く動作しないためです。次のコードに従って、より良い方法で可能にする方がよいでしょう。再び

注:

あなた$row1['id']は、whileループの外にあるので、$row1['id']は完全に無効であるとは何を意味するものではありません。

同じページから複数のファイルをターゲティングする場合(同じjavascript関数に接続するファイルを削除するための複数の要素とトリガがある例を考えてください)class selectorsを使用すると、同じ範囲の複数の要素のclickイベントを取得できます。

を使用して削除アンカータグを置き換える:

<a data-value="<?= $row1['id'];?>" class="remove_file">Delete</a> 

、その後のようなあなたのjavascriptのコードは次のようになります。

$(".remove_file").click(function() { 
var delcart = $(this).data('value'); 
     if (confirm("Are you sure want to delete?")) { 
     $.ajax({ 
      type: "GET", 
      url: "del_file.php", 
      data: {id : delcart}, 
      success: function (data) { 
       if (data) { 
        //alert('data'); 
        window.location.reload(); 
        } 
        } 
        }); 
     } 
     //alert($(this).data('value')); 
     }); 
+0

ありがとう、私は私の答えだけでなく、私の答えを得た。この一日。 –

+0

@tanmoysarkarうれしいあなたを助けてくれた:) –

-1

この

$(".del<?php echo $row1['id']; ?>").click(function() { 
     if (confirm("Are you sure want to delete?")) { 
     var delcart = $(this).data('value'); 
     var data = JSON.stringify({id : delcart}); 
     //alert(delcart); 
     $.ajax({ 
      type: "GET", 
      url: "del_file.php", 
      data: data, 
      success: function (data) { 
       if (data) { 
        //alert('data'); 
        window.location.reload(); 
        } 
        } 
        }); 
     } 
     //alert($(this).data('value')); 
     }); 
+1

OPはなぜこれを試すべきですか? – jeroen

+1

javascriptコードがwhileループの外にあり、 '$ row1 ['id']'は存在しないので、これはうまくいきません。 –

関連する問題