Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Удаление элемента id без перезагрузки страницы (https://javascript.ru/forum/misc/54029-udalenie-ehlementa-id-bez-perezagruzki-stranicy.html)

slavapolyakov 28.02.2015 16:05

Удаление элемента id без перезагрузки страницы
 
Всем привет! Подскажите как сделать удаление отдельного элемента id с базы не перезагружая страницу. Я так понимаю это нужно делать на ajax, пробовал ничего не получается. Вот обработчик form.php
$id = intval($_GET['id']);
if (mysql_num_rows(mysql_query('SELECT `id` FROM user_notification WHERE id = '.$id))) {
        if (mysql_query("DELETE FROM user_notification WHERE id = ".$id." LIMIT 1")) {
            print "yes";
        } else {
            print "no";
        }
    } else {
        print "no id";
    }

Вот файл отображения оповещений main.php
$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)) {

print " 
".date("d.m.Y H:i", $a['date'])." ".$a['text']."
<a href="form.php?id=".$a['id']."">удалить </a>
";

}
} else {
print "Оповещений нет";
}

Я никак не могу передать id в код ajax что бы отправить запрос в базу. Помогите пожалуйста)

laimas 01.03.2015 00:36

ID - это уникальный идентификатор, который не может быть равен нулю.
Оператор DELETE возвращает число удаленных записей.
Исходя из этого запрос перед удалением

'SELECT `id` FROM user_notification WHERE id = '.$id

является лишним, а уникальность идентификатора не требует LIMIT 1, и в данном случае лишено всякого смысла. Таким образом операция удаления должны быть такой:

if($id = (int)$_GET['id']) {
    if (mysql_query("DELETE FROM user_notification WHERE id = ".$id)) exit('Успешно удалено');
    else exit('Такого пользователя не существует'); //хотя это тоже означает, что запрос левый 
} esle exit; //ибо иначе это чистая подстава


В запросе на удаление параметр запроса (id) был приведен к типу integer, что исключает инъекцию. А параметры выборки $user_id и $login каким образом обработаны?

Я никак не могу передать id в код ajax что бы отправить запрос в базу.

В вашем коде не видно даже попытки этого, как такового кода Ajax нет. Используется ли на страницах jQuery?


Часовой пояс GMT +3, время: 18:01.