2015-11-12 3 views
2

Я загружаю php-выход в div с помощью ajax на странице (jobs.php), этот результат обновляется каждые несколько секунд, чтобы показать обновленный список записей из sql.ajax в ajax не работает

Я пытаюсь использовать ajax для удаления выбранной записи, это отлично работает на отдельной странице, однако, когда я пытаюсь сделать это с страницы jobs.php, ничего не происходит.

$(function() { 
    $('.trash').click(function() { 
     var del_id = $(this).attr('id'); 
     var $ele = $(this).parent().parent(); 

     $.ajax({ 
      type: 'POST', 
      url: 'deleterecord.php', 
      data: {del_id: del_id}, 
      success: function (data) { 
       if (data == "YES") { 
        $ele.fadeOut().remove(); 
       } else { 
        alert("record could not be deleted") 
       } 
      } 
     }); 
    }); 
}); 

deleterecord.php

$delid = $_POST['del_id']; 

$query5 = "DELETE from Records WHERE id = '$delid'"; 
$sql5 = mysqli_query($connection, $query5) or die(mysqli_connect_error()); 

if(isset($sql5)) { 
    echo "YES"; 
} else { 
    echo "NO"; 
} 

jobs.php

<script type="text/javascript"> 
    refreshdiv(); 
</script> 

какие-либо предложения о том, где я мог бы идти неправильно ??

function refreshdiv() { 

    // The XMLHttpRequest object 

    var xmlHttp; 
    try { 
     xmlHttp = new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari 
    } catch (e) { 
     try { 
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer 
     } catch (e) { 
      try { 
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (e) { 
       alert("Your browser does not support AJAX."); 
       return false; 
      } 
     } 
    } 
} 
+0

, что делает 'refreshdiv()' делать? перезагружает ли кнопки удаления? –

+0

консоль, что такое консоль? – madalinivascu

+0

** Опасность **: вы уязвимы для [SQL-инъекций] (http://bobby-tables.com/) **, которые вам нужно [защищать] (http://stackoverflow.com/questions/ 60174/best-way-to-prevent-sql-injection-in-php). – Quentin

ответ

5

Поскольку кнопки удаления загружаются динамически, вам необходимо использовать делегированные события.
Поэтому нам нужно привязать событие click к родительскому элементу, который существует во время загрузки,
ex body.

Заменить этот

$('.trash').click(function() { 

С этой

$('body').on('click','.trash',function(){ 
+0

@ndev добро пожаловать! –