jquery AJAX从数据库中删除脚本

时间:2016-07-04 09:42:06

标签: php jquery ajax

我试图通过AJAX调用从数据库中删除文件。但我想我错过了一些事情......我只得到* del“。$ row1 ['id']。” *而不是del id ...请帮助我。

//我的主文件//

<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';
}
?>

谢谢。

2 个答案:

答案 0 :(得分:2)

你正在以错误的方式做事。没有$row1['id']的{​​{1}}只会变成一个<?php ?>的字符串,而不是循环中的id。另一件事是你的javascript选择器完全无效,因为它在循环之外并且它根本不起作用。所以你最好遵循以下代码,并以更好的方式实现。

再次注意:

您的$row1['id']不在while循环中,因此$row1['id']完全无效,并不代表任何内容。

当您从同一页面定位多个文件时(让我们举例说明有多个元素并触发删除连接到相同javascript函数的文件)您可以使用$row1['id']获取多个元素的单击事件相同的范围。

将删除锚标记替换为:

class selectors

然后你的javascript代码应该是:

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

答案 1 :(得分:-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'));
      });