Carrello elettronico Ajax-PHP

Discussione in 'Ajax' iniziata da moscacieca, 27 Marzo 2009.

  1. moscacieca

    moscacieca Nuovo Utente

    Registrato:
    27 Gennaio 2009
    Messaggi:
    8
    Mi Piace Ricevuti:
    0
    Punteggio:
    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;
        }
        
    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
     
Sto caricando...

Condividi questa Pagina