2016-12-03 2 views
1

Код должен работать следующим образом: нажмите кнопку -> строка удаляется из базы данных.Удаление строки с ошибкой AJAX + php

Я попытался выполнить и скопировать ответы на другие вопросы, но без рабочего решения.

код JQuery:

$(document).on('click', ".menuRemove", function(event) { 
    var del_h3name2 = $(this).parent().parent().prev().text(); 

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

и PHP код (deleteaccordion2.php):

<?php 
    require 'database.php'; 

    if (isset($_SESSION['user_id'])) { 

    $id = $_SESSION['user_id']; 
    $accordion = $_POST['del_h3name2']; 

    echo '$accordion'; 

    $delete = "DELETE FROM useraccordion WHERE id='$id', h3= '$accordion' "; 
    $result = mysqli_query($delete); 

    if ($result) { 
     echo "YES"; 
    } else { 
     echo "NO"; 
    } 
    } 
?> 
+0

Добавляем к тому, что сказал @Dekel, 'alert (del_h3name2);', чтобы увидеть, что вы получаете правильное значение столбца h3' для удаления или нет. –

+0

Вы вызываете 'session_start()' в database.php или где-то на странице, но просто не включили его здесь в свою очередь? – Terminus

+0

Terminus, он отсутствовал, но это не решило проблему. Спасибо еще. –

ответ

2

Вы не добавить html, так что я действительно не знаю, если значение вы отправка правильно, но у вас есть ошибка в вашем SQL синтаксиса:

вы можете DELETE, где id = x AND h3 = y:

$delete = "DELETE FROM useraccordion WHERE id='$id' AND h3= '$accordion' "; 

Обратите внимание, что ваш код уязвим для инъекций SQL (читать о boby tables).

+0

Причина, по которой я не связывал ни один html, заключается в том, что кнопка и большая часть содержимого html динамически создаются в файле jquery. Кнопка уже удаляет правильные элементы с веб-сайта, но у меня возникают проблемы с базой данных. Я также добавил И, но это не исправить проблему, спасибо за это в любом случае. Также SQL-инъекции - это то, что мне нужно будет изучить в будущем, это всего лишь хобби-проект, поэтому не спешите. –

+0

Вы уверены, что 'del_h3name2 = $ (this) .parent(). Parent(). Prev(). Text();' дает правильное значение? Попробуйте 'alert (del_h3name2)' (или проверьте вкладку сети, чтобы узнать, какое значение вы действительно отправляете на сервер). Без структуры HTML Невозможно узнать, что это за значение. – Dekel

+0

$ .ajax ({ \t \t \t \t типа: 'POST', \t \t \t \t URL: 'deleteaccordion2.PHP», \t \t \t данные: { 'del_h3name2': del_h3name2}, \t \t \t \t успех: функция (данные) { \t \t если (данные == "ДА") { \t \t оповещения (del_h3name2); \t \t \t} else { \t alert (del_h3name2); \t \t \t} \t \t \t \t} \t \t \t \t}); дает правильное del_h3name2, но все еще не работает –

Смежные вопросы