使用ajax函数和php删除行

问题描述 投票:3回答:6

我有一个带有mysql数据的表,我添加了一个垃圾桶按钮,当我用ajax函数单击垃圾桶按钮时,我想删除每一行,这是我的html:

  <table border="1">
    <?php
$sql ="SELECT * FROM music";
$result = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_object($result)){

    echo '<tr><td>'.$row->file_name.'</td><td>'.$row->composer.'</td><td>'.$row->lyric.'</td><td>'.$row->music_thumb.'</td><td>'.'

    <a href="#" id="'.$row->msuic_id.'" class="trash" >
    جذف کردن
    </a>

    '.'</td></tr>';
    }

?>
  </table>

和我的ajax函数在这里:

$(function(){
        $('.trash').click(function(){
            var del_id= $(this).attr('id');
            var $ele = $(this).parent().parent();
            $.ajax({
                type:'POST',
                url:'delete.php',
                data:del_id,
                success: function(data){
                    if(data=="YES"){
                        $ele.fadeOut().remove();
                        }else{
                            alert("can't delete the row")
                            }
                    }

                })
            })
    });

还有我的“ delete.php”页面:

<?php
include('../db_inc.php');
$music_number = "POST['del_id']";
echo '$music_number';
$qry = "DELETE FROM music WHERE msuic_id ='$music_number'";
$result=mysql_query($qry);

?>

我认为我的问题是ajax函数;谢谢

php jquery mysql ajax
6个回答
11
投票
尝试一下

$.ajax({ type:'POST', url:'delete.php', data:{del_id:del_id}, success: function(data){ if(data=="YES"){ $ele.fadeOut().remove(); }else{ alert("can't delete the row") } } }) })

并且还要更改

$music_number = "POST['del_id']";

to

$music_number = $_POST['del_id'];


5
投票
您的ajax代码应为:

$(function(){ $(document).on('click','.trash',function(){ var del_id= $(this).attr('id'); var $ele = $(this).parent().parent(); $.ajax({ type:'POST', url:'delete.php', data:{'del_id':del_id}, success: function(data){ if(data=="YES"){ $ele.fadeOut().remove(); }else{ alert("can't delete the row") } } }); }); });

并且PHP代码应该是:

<?php include('../db_inc.php'); $music_number = $_POST['del_id']; //echo $music_number; $qry = "DELETE FROM music WHERE msuic_id ='$music_number'"; $result=mysql_query($qry); if(isset($result)) { echo "YES"; } else { echo "NO"; } ?>


4
投票
除了以上答案之外,您还应该委派您的点击处理程序,以防止不必要的重复

$(document).on('click', '.trash', function() { ... });


2
投票
尝试一下:

$music_number = POST['del_id']; in delete.php write ajax function like: $.ajax({ type:'POST', url:'delete.php', data:del_id, success: function(data){ if(data=="YES"){ $ele.fadeOut().remove(); }else{ alert("can't delete the row") } } }) });

    谢谢

2
投票
这里是您需要纠正的事情

  • 在“ delete.php”文件中$music_number = "POST['del_id']"; // to $music_number = $_POST['del_id'];

    此外,在ajax的成功回调中,您正在检查响应” YES”,该响应未发送到此文件的任何位置。

  • 更改为ajax请求

    data: {'del_id':del_id},

希望这会有所帮助。


2
投票
发送数据作为对象,而不仅仅是值

... type:'POST', url:'delete.php', data:{'del_id':del_id}, //<----here ....

并在delete.php中将其作为POST

$music_number = $_POST['del_id'];

更新

将此添加到您的delete.php

<?php include('../db_inc.php'); $music_number = $_POST['del_id']; $qry = "DELETE FROM music WHERE msuic_id ='$music_number'"; $result=mysql_query($qry); if($result) { echo "Yes"; } else { echo "No"; } ?>

© www.soinside.com 2019 - 2024. All rights reserved.