Удаление элемента id без перезагрузки страницы

Рейтинг: 0Ответов: 1Опубликовано: 28.02.2015

Всем привет!

Подскажите, как сделать удаление отдельного элемента id с базы, не перезагружая страницу. Я так понимаю, это нужно делать на ajax, пробовал - ничего не получается.

Вот обработчик form.php:

$id = intval($_GET['id']);
if (mysql_num_rows(mysql_query('SELECT `id` FROM user_notification WHERE id = '.$id))) {


        }
    } else {
        print "no id";
    }

Вот файл отображения оповещений main.php:

print " 


}
} else {

}

Вот такой пробовал ajax:

$(document).ready(function(){
$('#form').submit(function(){
   var data = {
    id: $('#id').val()
}
                $.ajax({  
                    type: "POST",  
                    url: "form.php",  
                    data: data,
                    success: function(html){   
            $("#Result").html(html).css('visibility','visible');                                     
                 }           
                });                 
                return false;  
            });  
    });

Ответы

▲ 3

1 Замечание насчет замены $_GET на $_POST в скрипте обработчике - верное. Либо в php используйте $_POST, либо в js используйте type:"GET".

2 Избежать путаницы и упростить код поможет использование методов $.get() или $.post()

3 В вашем случае код выглядить должен примерно так: (все это в main.php)

$(document).ready(function(){
  $('.del_me').click(function(e) {
    var id = e.target.dataset.id;
    // используем POST
    $.post("form.php", { "id": id}, function(resp){
      $("#Result").html(resp).css('visibility','visible');
      $('#'+id).remove(); //удаляем нужный элемент
    });
    // используем GET
    $.get("form.php?id="+$('#id').val(), function(resp){
       $("#Result").html(resp).css('visibility','visible');
       $('#'+id).remove(); //удаляем нужный элемент
    });
  });
});

$sql    = mysql_query("SELECT * FROM `user_notification` WHERE uid = '".$user_id."' OR login = '".$login."' ORDER BY id DESC");
if ( mysql_num_rows($sql) ) {
 while($a = mysql_fetch_array($sql)) {
   echo "<div id='".$a['id']."'>".date("d.m.Y H:i", $a['date']).":".$a['text']."<a data-id='".$a['id']."' href='#' class='del_me'>удалить </a></div>";
  }
  echo "<div id='Result'></div>";
 } else {
print "Оповещений нет";
}