Ho un problemino con uno script Ajax. Nel dettaglio questo script dovrebbe permettere di aggiungere e rimuovere dal carrello dei prodotti (di conseguenza aggiungerli o rimuoverli dal DB).
Per quanto riguarda l'aggiunta di un prodotto funziona tutto tranquillamente, ma ho dei problemi nel rimuoverli dal DB.
Nello specifico quando vado a cancellare un elemento dal carrello, questo viene eliminato si dal carrello stesso, ma non dal DB nonostante le istruzioni di codice in PHP mi sembrano scritte bene. Difatti mi viene dato un messaggio di errore nel momento in cui tenta di rimuoverli.
Le funzioni che fanno riferimento alla rimozione sono le seguenti:
Codice PHP:
function removeProductFromBasket(productId)
{
var productRow = document.getElementById('shopping_cart_items_product' + productId);
var numberOfItemCell = productRow.cells[0];
if(numberOfItemCell.innerHTML == '1'){
productRow.parentNode.removeChild(productRow);
}else{
numberOfItemCell.innerHTML = numberOfItemCell.innerHTML/1 - 1;
}
updateTotalPrice();
ajaxRemoveProduct(productId);
}
function ajaxRemoveProduct(productId)
{
var ajaxIndex = ajaxObjects.length;
ajaxObjects[ajaxIndex] = new sack();
ajaxObjects[ajaxIndex].requestFile = url_removeProductFromBasket; // Saving product in this file
ajaxObjects[ajaxIndex].setVar('productIdToRemove',productId);
ajaxObjects[ajaxIndex].onCompletion = function(){ ajaxValidateRemovedProduct(ajaxIndex); }; // Specify function that will be executed after file has been found
ajaxObjects[ajaxIndex].runAJAX(); // Execute AJAX function
}
function ajaxValidateRemovedProduct(ajaxIndex)
{
if(ajaxObjects[ajaxIndex].response!='OK')alert('Errore mentre si tenta di rimuovere il prodotto dal Database');
}
L'alert che mi viene visualizzato è proprio quello visualizzabile nella precedente funzione.
Il codice in PHP che viene chiamato dalla funzione ajaxRemoveProduct, specificato nella variabile url_removeProductFromBasket, è remove.php, che si occupa per l'appunto della cancellazione effettiva dal DB che elenco di seguito.
Codice PHP:
if(!isset($_POST['productIdToRemove']))die("Not OK");
// SELEZIONE DELL'ID RELATIVO ALL'UTENTE CHE STA EFFETTUANDO LA TRANSAZIONE
$query = "SELECT `id`
FROM user
WHERE user.username='$user_nome'" ;
$result = mysql_query($query);
while($row_U = mysql_fetch_assoc($result)) {
print"
";
print"ID: $row_U[id]
";
$userid=$row_U[id];
}
if (!$result) {
echo mysql_error();
exit;
}
// CANCELLAZIONE DELLA RIGA RELATIVA AL PRODOTTO DA ELIMINARE
$res = "DELETE
FROM `shopping_cart`
WHERE id_product = '{$_POST['productIdToRemove']}' AND id_user='$userid' LIMIT 1";
$ris = mysql_query($res) or die("Errore");
echo "OK";
Credo che qualcosa non vada nelle query, dal momento che eliminandole e lasciando solamente le due righe di codice sotto elencate (che non eseguono alcuna operazione sul DB), il messaggio di errore specificato nella funzione ajaxValidateRemovedProduct(ajaxIndex) non mi viene ritornato.
Codice PHP:
if(!isset($_POST['productIdToRemove']))die("Not OK");
// Quì dovrei aggiungere le mie query per le operazioni sul DB.
echo "OK";
Potete gentilmente aiutarmi a risolvere questo problema?
Grazie mille in anticipo.