Premettendo che non sono un espertone di JavaScript e mi sto avvicinando allo studio più approfondito di jQuery proprio in questi giorni vi espongo un problema che mi sta affliggendo da stamattina ed al quale non ho trovato spiegazione:
Sto provando a sviluppare un carrello per un progettino ecommerce e sto temporaneamente provando tutto su una unica pagina.
All'inizio ho una tabella con gli articoli (con dati presi in php+mysql, ma questo lato non è il problema) con un pulsante "Aggiungi al carrello" alla fine di ogni riga realizzato mediante un input type=image (per passare il codice articolo). Questo funziona.
Il funzionamento è molto semplice: invia i dati in POST alla pagina PHP che li controlla, li elabora e restituisce l'ok. Al refresh mi fa apparire una notifica, mi aggiorna il contatore degli articoli nel carrello (#riepilogo_carrello) ed il riepilogo dell'acquisto (#riepilogo_acquisto)codice:$(".btt_addtocart").click(function(){ var codicearticolo = $(this).val(); var dataset = "i=" + codicearticolo; $.ajax({ type: "POST", url: "/shop/aggiungi_a_carrello.inc.php", data: dataset, dataType: "html", cache: false, success: function(data) { $("#notice").fadeIn("slow"); $("#notice").html(data); $("#notice").css("background-color","#CCFFCC"); setTimeout('$("#notice").fadeOut("slow")',2000); $("#riepilogo_carrello").load(location.href+" #riepilogo_carrello>*"); $("#riepilogo_acquisto").load(location.href+" #riepilogo_acquisto>*"); }, error: function() { var message = "Si è verificato un errore."; $("#notice").fadeIn("slow"); $("#notice").html(message); $("#notice").css("background-color","#FFCCCC"); setTimeout('$("#notice").fadeOut("slow")',2000); } }); });
Proprio in quest'ultimo, ho messo due pulsantini, sempre tramite (input type="image") con due pulsanti + (associato alla chiamata di cui sopra) ed un - associato ad una molto simile che elimina una riga dalla tabella carrello.
Funziona tutto perfettamente, le righe si aggiungono senza problemi ma quando da una di queste righe del riepilogo faccio clic su uno dei due pulsantini + o - funziona solo la prima volta. Dalla seconda in poi non va più nulla e non si genera la chiamata asincrona (la console di Firebug non mente).
Sono sicuro che si tratta di una cosa abbastanza semplice... ma... proprio non riesco ad arrivarci!![]()
Grazie a tutti sin da ora!
*Modificato per correzione indentatura codice

Rispondi quotando