Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    Ciao

    Risposta breve: nella tua pagina togli i commenti dagli span dove ci sta il prezzo.

    Quote Originariamente inviata da ciro78
    Questo perché nessuno si metterà a fare il reverse del tuo codice solo per capire cosa fa.
    io... ma solo 5 minuti per capire dove stava il problema

    Risposta estesa:
    Ho giocato un po' sulla pagina e spulciato nello script per verificare dove sta e cosa fa la funzione usata per aggiungere gli articoli al carrello.
    Di fatto tale funzione (addToCart) si basa sul prezzo che è riportato sulla pagina, o meglio, preleva letteralmente il contenuto testuale che sta dentro lo <span> (quello che teoricamente dovrebbe contenere il valore del prezzo) sotto ogni relativo articolo, quindi ne fa un replace per eliminare, sostanzialmente, tutti i caratteri mantenendo solo le cifre numeriche e il punto.

    Ora, dove sta il problema?

    Prendiamo questo caso (il primo articolo di quella pagina):

    codice:
    <span class="item_price">15.00
                                  €</span>
    la funzione preleva il valore "15.00 €" (in teoria c'è anche un carattere di ritorno a capo ma poco cambia) quindi elabora il dato e restituisce il valore "15.00" ripulito da tutti i caratteri "inutili".

    Fin qui tutto ok.
    Prendiamo invece un caso dove avviene il problema (dove tu hai verificato che il prezzo viene aumentato di un centesimo), ad esempio il 6° articolo.

    Cosa c'è esattamente dentro il relativo span del prezzo?

    Dall'analisi degli elementi vedo questo:
    codice:
    <span class="item_price">9.50 €<!--6.65--></span>
    C'è un commento HTML dentro lo span; presumo fosse solo un esempio di prezzo o forse un precedente valore mantenuto commentato per un qualche motivo... boh

    Certo, è solo un commento che hai fini pratici non dovrebbe influire sulle funzionalità della pagina... o forse sì

    Cosa avviene nella funzione addToCart?
    Stessa storia di prima: la funzione prende l'intero valore trovato dentro lo span "9.50 €<!--6.65-->" quindi lo ripulisce dai caratteri inutili e restituisce esattamente il valore "9.506.65".

    Nelle operazioni successive viene poi convertito nel valore numerico 9.506 attraverso un parseFloat; tale valore viene usato per eseguire le operazioni nel carrello anche se sulla pagina, nel carrello, questo valore è troncato alla seconda cifra decimale.

    La causa è quindi la presenza di quei commenti dentro lo span, i quali contengono dei caratteri numerici che non dovrebbero essere considerati ma, di fatto, lo sono.

    Per risolvere, in modo semplice, ripulisci i contenuti di quegli span, limitandoti ad inserire solo i prezzi e nulla di più.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  2. #2
    Utente di HTML.it L'avatar di debugger84
    Registrato dal
    Oct 2019
    residenza
    Orani (NU)
    Messaggi
    11
    Fantastico!! Il problema sarebbero i commenti all'interno della span e mi basta spostare i commenti fuori dalla span per funzionare? Ci provo, e tra poco ti faccio sapere! Sei un Genio! Grazie del tuo aiuto, speriamo che funzioni.

    P.S.: sì, i commenti sono i prezzi precedenti, quelli che ho messo scontati del 30% per la "Black Week" del sito.
    Ah, Grazie anche a te Ciro78.
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Ciao

    Risposta breve: nella tua pagina togli i commenti dagli span dove ci sta il prezzo.


    io... ma solo 5 minuti per capire dove stava il problema

    Risposta estesa:
    Ho giocato un po' sulla pagina e spulciato nello script per verificare dove sta e cosa fa la funzione usata per aggiungere gli articoli al carrello.
    Di fatto tale funzione (addToCart) si basa sul prezzo che è riportato sulla pagina, o meglio, preleva letteralmente il contenuto testuale che sta dentro lo <span> (quello che teoricamente dovrebbe contenere il valore del prezzo) sotto ogni relativo articolo, quindi ne fa un replace per eliminare, sostanzialmente, tutti i caratteri mantenendo solo le cifre numeriche e il punto.

    Ora, dove sta il problema?

    Prendiamo questo caso (il primo articolo di quella pagina):

    codice:
    <span class="item_price">15.00
                                  €</span>
    la funzione preleva il valore "15.00 €" (in teoria c'è anche un carattere di ritorno a capo ma poco cambia) quindi elabora il dato e restituisce il valore "15.00" ripulito da tutti i caratteri "inutili".

    Fin qui tutto ok.
    Prendiamo invece un caso dove avviene il problema (dove tu hai verificato che il prezzo viene aumentato di un centesimo), ad esempio il 6° articolo.

    Cosa c'è esattamente dentro il relativo span del prezzo?

    Dall'analisi degli elementi vedo questo:
    codice:
    <span class="item_price">9.50 €<!--6.65--></span>
    C'è un commento HTML dentro lo span; presumo fosse solo un esempio di prezzo o forse un precedente valore mantenuto commentato per un qualche motivo... boh

    Certo, è solo un commento che hai fini pratici non dovrebbe influire sulle funzionalità della pagina... o forse sì

    Cosa avviene nella funzione addToCart?
    Stessa storia di prima: la funzione prende l'intero valore trovato dentro lo span "9.50 €<!--6.65-->" quindi lo ripulisce dai caratteri inutili e restituisce esattamente il valore "9.506.65".

    Nelle operazioni successive viene poi convertito nel valore numerico 9.506 attraverso un parseFloat; tale valore viene usato per eseguire le operazioni nel carrello anche se sulla pagina, nel carrello, questo valore è troncato alla seconda cifra decimale.

    La causa è quindi la presenza di quei commenti dentro lo span, i quali contengono dei caratteri numerici che non dovrebbero essere considerati ma, di fatto, lo sono.

    Per risolvere, in modo semplice, ripulisci i contenuti di quegli span, limitandoti ad inserire solo i prezzi e nulla di più.

  3. #3
    Utente di HTML.it L'avatar di debugger84
    Registrato dal
    Oct 2019
    residenza
    Orani (NU)
    Messaggi
    11
    Non so come ringraziarti. Sei un grande. E io sono piccolo come una formica. Mi hai spiegato alla perfezione una funzionalità di JavaScript. Essendo io un programmatore alle prime armi in conto di JavaScript, ovviamente non lo conosco. Grazie. Funziona alla perfezione, anche l'e-mail.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.