2016-12-16 98 views
0

我寫了一個函數從購物車中刪除一個項目;成功消息閃爍,但該項目未被刪除。控制檯中沒有標記錯誤消息。不過,我認爲我的查詢是錯誤的。jQuery onclick從mysql表中刪除行

cart.php

  <form id='updateCartForm' action="update_cart.php" method="get"> 
<input name="cart_item_id" type = "hidden" id ="cart_item_id" value='<?=$product['id'];?>'> 
</form> 
    <button class="btn btn-warning" onclick='update_cart(); return false;'>&times</button> 

footer.php

function update_cart(){ 
    jQuery('#updateCartErrors').html(""); 
    var cart_item_id = jQuery('#cart_item_id').val(); 
    var error = ' '; 
var data = jQuery('#updateCartForm').serialize(); 

    jQuery.ajax({ 
    url : '/ecommerce/customer/parsers/update_cart.php ', 
    method: 'get', 
    data : data, 
    success : function(){ 
     location.reload(); 
    }, 
    error : function(){alert("Something went wrong");} 
}); 
} 

update_cart.php

<?php 
ob_start(); 
require_once $_SERVER['DOCUMENT_ROOT'].'/ecommerce/core/init.php'; 

$cart_item_id = $_GET['cart_item_id']; 
$sql = "DELETE FROM cart WHERE id = $cart_item_id" ; 


//flash success message 
$domain =($_SERVER['HTTP_HOST'] != 'localhost')?'.'.$_SERVER['HTTP_HOST']:false; 
$_SESSION['success_flash'] = $product['prod_name']. ' was deleted from your cart.'; 
+0

@ e4c5:是'$ product ['id']'由另一個查詢生成以顯示購物車中的產品。 – Chad

+0

您是否檢查該表單是否正確呈現,但是檢查了html – e4c5

+0

這些'

Sean

回答

0

下面給出的請更新代碼,並嘗試:

$sql = "DELETE FROM cart WHERE id =" . $cart_item_id; // update this 
$db->query($sql); //add this new line in code. 

如果有任何困惑,請讓我問。 謝謝...

+0

- [*當雙引號或heredoc指定字符串時,變量將在其中解析*](http ://php.net/manual/en/language.types.string.php#language.types.string.parsing)。所以你的查詢等同於OP。 – Sean

+0

如果您要建議更改查詢,您的'$ db->查詢($ sql);'是正確的,但 – Sean

+1

,建議應該是使用預準備語句。 – e4c5

0

你能試試嗎?

我認爲你需要追加值。

 $sql = "DELETE FROM cart WHERE id =".$cart_item_id; 
+0

from docs - [*當一個字符串用雙引號或heredoc指定時,變量在其中被解析*](http://php.net/manual/en/language.types.string.php#language.types .string.parsing)。所以你的查詢等同於OP。 – Sean

+1

如果您打算建議更改查詢,則建議應該是使用來自docs的預準備語句 – e4c5