2015-04-01 4 views
1

сценария:Кнопки для удаления записи из базы данных

$('.removeVehicle').click(function() { 
    var $this = $(this), 
     $row = $(this).parent().parent(); 

    alert($row.attr('data-vehicle-id')); 

    if (confirm("Delete vehicle? ") == true) { 
     $.post("removevehicle.php", {Id: $row.attr('data-vehicle-id')}); 
    }; 
}); 

HTML/PHP:

<?php while ($row = $products->fetch_assoc()) { ?> 
    <tr data-vehicle-id="<?= $row['Vehicle_ID']?>"> 
     <td class="VRM"><?= $row['VRM']; ?></td> 
     <td class="Make"><?= $row['Make']; ?></td> 
     <td class="Model"><?= $row['Model']; ?></td> 
     <td class="Colour"><?= $row['Colour']; ?></td> 
     <td class="Mileage"><?= $row['Mileage']; ?></td> 
     <td class="Advertised Price">£<?= $row['Advertised_Price']; ?></td> 
     <td class="Date of Registration"><?= $row['Date_of_Registration']; ?></td> 
     <td class="HPi Status"><?= $row['HPI_Status']; ?></td> 
     <td class="actions"> 
      <button class="editLine">Edit line</button> 
      <button class="saveLine hide">Save line</button> 
      <button class="startSale" onclick="div_showSale()">Start Sale</button> 
      <button class="removeVehicle"><img id="trash" src="images/trash.png" alt="Delete Vehicle" height=20 width=20></button> 
     </td> 
    </tr> 
<?php } ?> 

removevehicle PHP:

<?php 
require 'config/init.php'; 

if (isset($_SESSION['myusername'])) { 
    $mysqli = new mysqli($db['hostname'], $db['username'], $db['password'], $db['database']); 

    if ($mysqli->connect_errno) { 
     printf("Connect failed: %s\n", $mysqli->connect_error); 
     exit(); 
    } 
    $queryStr = "DELETE FROM VEHICLE WHERE Vehicle_ID = '" . $_POST['Id'] . "'"; 


    $query = $mysqli->query($queryStr); 

} 

работы до точки чеки с транспортным средством ID (предупреждается правильный идентификатор транспортного средства). По сути, все, что мне нужно сделать, это удалить транспортное средство/запись из базы данных - какие-либо лучшие предложения или как заставить текущий метод работать?

Как только у меня это получится, я изменю запрос MySQLi, чтобы противодействовать инъекции (он еще не жив.

+0

Вы пробовали извлекать короткий ручной метод AJAX и используя полную подпись? $, ajax ({url: ваш php-вызов, метод: post и т. д.) Несколько раз это работает для меня, когда $ .Post не делает. – snowYetis

+0

Выполняется ли PHP-код? Вы говорите, что это работает до предупреждения, делает он не попадает в почтовый индекс? –

ответ

0

Я думаю, что проблема связана с запросом SQL и обертывание vehicle_id в кавычках?

Если вам нужно удалить строку после вы хотите сделать это в обратный вызов, как это:

$.post("removevehicle.php", {Id: $row.attr('data-vehicle-id')}, function() { 
    // delete the row 
}); 
1

получить информацию об атрибутах данных, используя .data(). Также верните результаты PHP и выгрузите его в console. Наконец, проверьте свою консоль на наличие ошибок. Используйте вместо этого:

PHP:

$query = $mysqli->query($queryStr); 
echo $query; 

JS:

$('.removeVehicle').click(function() { 
    var $this = $(this), 
     $row = $(this).parent().parent(); 

    var vehicle_id = $row.data("vehicle-id"); 

    if (confirm("Delete vehicle? ") == true) { 
     $.post("removevehicle.php", {Id: vehicle_id}, function(result) { 
      console.log(result); 
     }); 
    } 
});