удалить строку с помощью функции ajax и php

У меня есть таблица с данными 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; благодаря

попробуй это

 $.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']"; 

в

 $music_number = $_POST['del_id']; 

Ваш код 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"; } ?> 

В дополнение к приведенным выше ответам, вы должны делегировать ваш обработчик на клике, чтобы предотвратить ненужное дублирование

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

Попробуй это:

 $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") } } }) }); 
  • благодаря

отправлять вам данные как объекты, а не только значения

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

и взять его как POST в delete.php

  $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"; } ?> 

Вот то, что вам нужно исправить

  • В файле "delete.php" $music_number = "POST['del_id']"; // to $music_number = $_POST['del_id']; $music_number = "POST['del_id']"; // to $music_number = $_POST['del_id'];

    Кроме того, в случае успешного обращения ajax вы проверяете «ДА» в ответ, который не отправляется нигде в этом файле.

  • Изменение вашего запроса ajax

    data: {'del_id':del_id},

Надеюсь это поможет.