Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Grazie della spiegazione simo ma del funzionamento qualcosa conosco, ed è per questo che creavo con un'altra pagina il cookie in maniera asincrona e sempre in maniera asincrona sostituivo l'interno di un div con i nuovi valori del carrello presi dai cookie (due chiamate distinte a due pagine distinte).
    Forse la chiamata è troppo rapida e non fa in tempo a crearlo.
    Ce l'ho fatta! - ItalianPixel -

  2. #12
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    722
    Non c'entra nulla il tempo e non so come fare a fartelo capire.
    Ovviamente se metti un redirect del tipo 'header("Location: tuapagina");' ovviamente i cookie non saranno salvati.
    Puoi semplicemente salvarli su una variabile se ci devi ancora operare prima di inviarli. Poi li invii già modificati.
    Ecco un esempio:

    Codice PHP:
    <?php
    //INIZIO PAGINA
    if(isset($_COOKIE["cookie"]) $cookie $_COOKIE["cookie"];
    else 
    $cookie 0;

    //META' PAGINA
    if($cookie === 0){
        
    //nessun cookie, lo setto come voglio
    }else{
        
    //oh, c'è un cookie, faccio le modifiche
    }

    //devo fare un'altra modifica al cookie perchè il database mi ha dato questa variabile o qualcosa del genere.
    $cookie $nuovo valore;

    //FINE PAGINA
    setcookie("cookie"$cookietime()+3600);
    ?>
    Forse con l'esempio mi posso spiegare meglio.

  3. #13
    Se pensi che il problema sia quello delle tempistiche di creazione del cookie, metti uno sleep o un time_nanosleep prima di stampare il risultato che (presumo) recuperi via jquery.

  4. #14
    Dirk ho provato con sleep ma non sembra interesssargli.
    Simo, forse mi sfugge qualcosa allora.
    Io faccio 2 distinte chiamate con jquery. Una crea il cookie (apro/chiudo pagina asincronamente), l'altra mi recupera i valori(apro pagina asincronamente, quindi è un'altra pagina chiamata dopo quella che crea il cookie). Sono due chiamate distinte. Due pagine distinte aperte in sequenza. Perché non dovrebbe funzionare? Se creassi un cookie in una pagina e con un redirect mi mandassi ad una seconda pagina che mi mostra il carrello funzionerebbe? Perché il procedimento è identico.
    Ce l'ho fatta! - ItalianPixel -

  5. #15
    In effetti dovrebbe funzionare, in quanto tu crei il cookie e lo salvi sul pc.
    Lo recuperi in seguito con un'altra pagina e ne passi il valore via jquery.
    Che le chiamate arrivino da una singola pagina che è lì ferma e non viene ricaricata, non importa, tu le chiamate le fai via jquery.

    Ma il problema qual'è? Quando richiami la seconda pagina non ti viene restituito il valore del cookie?
    Sei sicuro che abbia valore? Hai provato con un alert sull'evento success della chiamata ajax, a visualizzare il contenuto della risposta?

    E se aggiorni la pagina con F5 e richiami manualmente il valore del cookie te lo restituisce o no?

  6. #16
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    722
    In teoria dovrebbe essere un problema di jquery o di ajax molto più probabilmente. Ma comunque il problema è client side.
    Prova con un browser diverso.

  7. #17
    Di solito mi faccio problemi se non funziona sul browser che uso in quel momento, perché vuol dire che già ci sono problemi. Quando creo nuovi progetti cerco sempre di renderli cross-browser e se incontro subito problemi mi fermo e li risolvo.
    In questo caso la logica è dalla mia ma non il prodotto finale! Che abbia valore quello è sicuro, ma quando vado a richiamare il carrello con una seconda chiamata singola.. è come se non l'avesse ancora aggiornato. Però dopo 1 secondo o 2, con l'evento onmousemove, faccio aggiornare il tutto più volte al secondo e allora me lo modifica, ma non immediatamente. Se clicco sul pulsante (viene creato il cookie tramite onclick) e poi muovo subito il mouse (che mi aggiorna il div con il carrello) non lo aggiorna. Se faccio lo stesso procedimento ma attendo un secondo prima di muoverlo, allora me lo aggiorna. Quindi il procedimento è giusto ma sembra lenta la creazione del cookie stesso.
    Ce l'ho fatta! - ItalianPixel -

  8. #18
    Se, come penso, salvi nel cookie i prodotti del carrello, perchè non usi le sessioni?
    Se non altro non hai il problema del tempo, che invece il cookie sembra darti.
    Considera una connessione lenta al web, in quel caso il cookie ci impiegherebbe molto di più a crearsi, per un discorso di scambio dati.

    Il cookie con i prodotti lo puoi sempre creare, ma i dati che visualizzi li prelevi dalla sessione, così da non andare (quasi mai) a leggere il cookie.
    Quando l'utente torna sul sito, a quel punto vai a leggere il cookie che ha sul pc, se hai scelto di lasciarlo in vita x tempo, e gli popoli il carrello (odioso questo sistema, che mi obbliga ogni volta a svuotare il carrello).

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 © 2020 vBulletin Solutions, Inc. All rights reserved.