Carrello elettronico Ajax-PHP

moscacieca

Nuovo Utente
27 Gen 2009
8
0
0
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:

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 contenuto 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.

PHP:
if(!isset($_POST['productIdToRemove'])) {
   echo "Not OK" ;
   exit;
}                        
// SELEZIONE DELL'ID RELATIVO ALL'UTENTE CHE STA EFFETTUANDO LA TRANSAZIONE              
$query = "
   SELECT `id`
   FROM user
   WHERE username= '$user_nome'
";                             
$result = mysql_query($query) or DIE (mysql_error());

while($row_U = mysql_fetch_assoc($result) {
print"<br /> ID: ". $row_U[id]."
<br />".$row_U['id'];
}
// CANCELLAZIONE DELLA RIGA RELATIVA AL PRODOTTO DA ELIMINARE
$prod2remove = $_POST['productIdToRemove'];
$res = "
   DELETE FROM `shopping_cart`
   WHERE id_product = $prod2remove
   AND id_user= $userid
   LIMIT 1
";
$ris = mysql_query($res) or die("Errore");
echo "OK";

A questo punto vi chiedo come vi sembra possibile che nel file in questione ovvero remove.php, qualsiasi riga di codice vada ad inserire in aggiunta alle righe di seguito

PHP:
if(!isset($_POST['productIdToRemove']))die("Not OK");    

// Quì dovrei aggiungere le mie query per le operazioni sul DB.

echo "OK";

mi tiri fuori l'errore specificato nella funzione di controllo

ajaxValidateRemovedProduct(ajaxIndex)

Specificatamente se lascio il file remove.php vuoto con solamente le due righe di codice su mensionate, tutto funziona (ovviamente senza cancellare dal DB, dato che ho omesso le query), mentre qualsiasi altra parte di codice vada ad inserire in aggiunta, anche una sola variabile, non mi funziona più tirando fuori l'errore dell'ALERT!!!!!!!!!!!!!!
Quindi a questo punto credo che non dipenda dalle query, ma c'è qualcosa di più.
Ripeto, anche se inserisco un semplice echo, oltre alle due righe non mi funziona più nulla, come se si aspettasse come risultato solamente la stringa in ECHO "OK", oppure "NOT OK".
Dipende forse mica da:

PHP:
if(ajaxObjects[ajaxIndex].response!='OK')

Grazie mille
 

Discussioni simili