2016-03-25 33 views
1

kullanırken veritabanında satır silinmiyor Veritabanımdaki bir kaydı kaldırması beklenen uygulamada bir düğme oluşturdum. Şu anda kaydın başarıyla kaldırıldığını söyleyen bir mesaj alıyorum ama aslında onu silmiyor. İşte AJAX ve PHP

Önce bu kod ile ajax ile kaydın kimliğini göndermek benim düğmesi HTML

<button id="deleteButton" class="btn btn btn-danger btn-lg active" role="button" value="<?php echo $rows['recipe_id']; ?>">Delete Recipe</button> 

olduğunu

$(document).ready(function() { 
    $('#deleteButton').click(function(){ 
     var clickBtnValue = $(this).val(); 
     var recipeID = JSON.stringify(clickBtnValue); 
     var data = { 
      "action" : recipeID 
     } 
     var ajaxurl = '/recipe-project/ajax.php'; 
     $.ajax({ 
      url: ajaxurl, 
      type: "POST", 
      data: data, 
      success:function(data) { 
       alert(data); 
      } 
     }); 
    }); 
}); 

Ve işte benim PHP

burada
include_once('classes/class-database-functions.php'); 
include_once ('classes/User.php'); 

if (isset($_POST['action'])) { 
    $recipe_id = $_POST['action']; 
    $test = new User(); 
    if (!empty($test)) { 
     $test->delete_recipe($recipe_id); 
    } 
} 

ve olduğu

kaydını kaldırmayı sınıftaki işlevdir
public function delete_recipe($recipeID) { 

     $query = "DELETE FROM recipes WHERE recipe_id= '$recipeID'"; 

     if (mysqli_query($this->connection, $query)) { 
      echo "Record deleted successfully"; 
     } else { 
      echo "Error deleting record: " . mysqli_error($this->connection); 
     } 
    } 

Günlüklerimde hatalar alıyorum ve ajax'ın işleve doğru kimliği gönderilmesini kontrol ettim, bu sorunun neden oluştuğunu herkes görebilir mi?

cevap

1

Kodunuzla bu kısmı iyidir Ayrıca Firefox'ta kundakçı yüklü olabilir

var_dump($_POST); 

Hangi verileri gönderiyorsunuz?

0

Ben o zaman bu

if (isset($_GET['action'])) { 
    $recipe_id = $_GET['action']; 
    $test = new User(); 
    if (!empty($test)) { 
     $test->delete_recipe($recipe_id); 
    } 
} 

için kodunuzu değiştirmeniz ör tarayıcınızda URL'yi doğrudan erişerek ve $ _GET değişkeni dahil edilerek test önermek ?action=the recipe's id. Daha sonra, $test nesnesinin doğru oluşturulduğu ve sorgu düzgün bir şekilde yürütüldüğünde, kimlik doğruysa hata ayıklamak için var_dump kullanabilirsiniz.

if (isset($_POST['action'])) { 
    $recipe_id = $_POST['action']; 
    $test = new User(); 
    if (!empty($test)) { 
     $test->delete_recipe($recipe_id); 
    } 
} 

Ama ayıklama için, bu kodundan önce sahip olabilir: bir POST var gibi