Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Consiglio per creare carrello spesa semplificato

    Salve sto cercando di realizzare un carrello spesa semplificato.
    E difficile spiegare ciò che vorrei in output ma cerco di spiegarlo.

    Praticamente visualizzo delle foto in funzione dell'id che ricevo tramite get.
    Vorrei che cliccando su un link (ad esempio "Mi interessa") l'id della foto venisse salvato nella sessione e contemporaneamente venisse visualizzato (l'id) in un opportuno div, il tutto senza che la pagina cambi.
    Ho provato un pò di tutto, ma non so proprio come risolvere il problema, sono sicuro che entra in gioco javascript ma non so in quale maniera, e come interagire con php.

    Se qualcuno ha qualche idea, cercherò di spiegarmi meglio.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    2,008
    col mio ragionamento parto dal punto cha apri la pagina e l' id e stato trasmesso con get
    per paticita di utilizzo con javascript del valore id preso da url proviamo ad inseire un
    codice:
    <input id="id_get" type="hidden"  value="<?=$_GET['id']?>" />
    e ora crei il div dove inserire questo valore
    codice:
    <div id="display_id_get"></div>
    a questo punto crei la funzione javascript

    codice:
    <script type="text/javascript">
    functin mostra_interesse(){
    document.getElementById("display_id_get").innerHTML=document.getElementById("id_get").value;
    </script>
    }
    ed al link MI INTERESSA pui mettere
    codice:
     MI INTERESSA
    e questo è un inizio
    se poi nel box "mi interessa" vuoi mettere contenuti dinamici devi usare una "tecnologia" ajax

  3. #3
    Grazie della risposta;
    quindi se ho capito bene, ricevo l´id, ma lo visualizzo nel div solo cliccando su "mi interessa"!
    Adesso mi interesserebbe conservare gli "id" ogni volta che clicco sullo stesso link "mi interessa", come posso fare? Pensavo di utilizzare le sessioni, ma tra javascript sessioni e ajax ho le idee per niente chiare.
    Ho cercato anche script su internet, ma a me non interessa un vero e proprio carrello della spesa, mi interessa solo salvare delle immagini scelte da utenti, per poi inviarle via email,possibilmente senza dover ricaricare la pagina.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    Non sono molto esperto,ma ho pensato questo:
    <button onclick='imgcarrello()'>Interessante</button>
    <script>
    function imgcarrello(){
    var divcarrello=document.getElementById('idcarrello');
    var immagine=document.getElementById('id_imgprodotto). getAttribute('src');
    divcarrello.innerHTML+="[img]"+ immagine + "[/img]";
    }
    </script>

    Però purtroppo credo che a ogni refresh della pagina il contenuto della div sparisca...

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    ciao,

    è essenziale sapere 3 cose per fare quello che vuoi tu:

    se non hai mai usato ajax sarebbe opportuno che tu iniziassi a muovere i primi passi verso questo metodo di lavoro, in quanto il web 2.0 è iniziato già da un pò, e forse è il caso che tu ti butti in quello che poi ti aprirà molte strade.

    1 - php può generare anche codice js
    2- una chiamata ajax conserva gli header originali dello script, cosicchè anche il cookie di sessione viene trasmesso nelle future chiamate
    3- come implementare dinamicamente un codice javascript all' interno della pagina.

    detto questo, ti propongo un metodo semplice semplice che NON E' ajax, ma ci pare (con i suoi limiti però!!)

    la pagina chiamata pagina.php
    Codice PHP:
    <?php 
    session_start
    (); 
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
      <head>
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      <meta name="generator" content="PSPad editor, [url]www.pspad.com[/url]">
      <title>test</title>
      <script>
    function refreshCounter(val){
        var fileref=document.createElement('script');
            fileref.setAttribute("type","text/javascript");
            fileref.setAttribute("src", 'remota.php?num='+val);
        
        document.getElementsByTagName("head")[0].appendChild(fileref)
        }
      </script>
      </head>
      <body>
    <input type="button" value="1" onClick="refreshCounter(this.value)">
    <input type="button" value="2" onClick="refreshCounter(this.value)">
    <input type="button" value="3" onClick="refreshCounter(this.value)">
    <input type="button" value="4" onClick="refreshCounter(this.value)">
    <input type="button" value="5" onClick="refreshCounter(this.value)">
    <input type="button" value="6" onClick="refreshCounter(this.value)">


    <div id="scelte"></div>
      </body>
    </html>
    e la pagina remota che logga in sessione le scelte fatte e ti aggiorna il div scelte
    pagina chiamata remota.php

    Codice PHP:
    <?php 
    session_start
    ();

    $_SESSION['images'][]=$_GET['num'];

    $js_array=json_encode($_SESSION['images']);
    echo 
    "var immagini=$js_array;";
    echo 
    "document.getElementById('scelte').innerHTML=immagini.join(' -- ');";
    ?>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    Grazie dell'aiuto,
    ho capito la logica, ma purtroppo non conosco bene php,e sconosco javascript.
    Ho Php 4 quindi ho dovuto utilizzare una funzione apposita al posto di "json_encode".
    Se ho capito bene i pulsanti inviano il loro valore se cliccati tramite javascript alla pagina remota.php , questa conserva il valore in sessione, e grazie a javascript la mostra nel opportuno div.
    Per ora non sono riuscito a farlo funzionare, probabilmente a causa della funzione json_encode!

    Questa è la funzione che ho utilizzato al posto di json_encode
    Codice PHP:
    <?php

    /**
     * Converts an associative array of arbitrary depth and dimension into JSON representation.
     *
     * NOTE: If you pass in a mixed associative and vector array, it will prefix each numerical
     * key with "key_". For example array("foo", "bar" => "baz") will be translated into
     * {'key_0': 'foo', 'bar': 'baz'} but array("foo", "bar") would be translated into [ 'foo', 'bar' ].
     *
     * @param $array The array to convert.
     * @return mixed The resulting JSON string, or false if the argument was not an array.
     * @author Andy Rusterholz
     */
    function array_to_json$array ){

        if( !
    is_array$array ) ){
            return 
    false;
        }

        
    $associative countarray_diffarray_keys($array), array_keysarray_keys$array )) ));
        if( 
    $associative ){

            
    $construct = array();
            foreach( 
    $array as $key => $value ){

                
    // We first copy each key/value pair into a staging array,
                // formatting each key and value properly as we go.

                // Format the key:
                
    if( is_numeric($key) ){
                    
    $key "key_$key";
                }
                
    $key "'".addslashes($key)."'";

                
    // Format the value:
                
    if( is_array$value )){
                    
    $value array_to_json$value );
                } else if( !
    is_numeric$value ) || is_string$value ) ){
                    
    $value "'".addslashes($value)."'";
                }

                
    // Add to staging array:
                
    $construct[] = "$key$value";
            }

            
    // Then we collapse the staging array into the JSON form:
            
    $result "{ " implode", "$construct ) . " }";

        } else { 
    // If the array is a vector (not associative):

            
    $construct = array();
            foreach( 
    $array as $value ){

                
    // Format the value:
                
    if( is_array$value )){
                    
    $value array_to_json$value );
                } else if( !
    is_numeric$value ) || is_string$value ) ){
                    
    $value "'".addslashes($value)."'";
                }

                
    // Add to staging array:
                
    $construct[] = $value;
            }

            
    // Then we collapse the staging array into the JSON form:
            
    $result "[ " implode", "$construct ) . " ]";
        }

        return 
    $result;
    }

    ?>
    dove metto in input

    $array=($_SESSION['images']);

    e in output:

    $js_array=$result;

    Utilizzando per il resto il tuo script!

  7. #7
    Ho risolto, il tuo esempio mi funziona benissimo ed è proprio quello che cercavo,adesso non rimane che adattarlo!
    Grazie ancora!

    Ps. Una curiosità, ma dove/come si imparano tutte queste cose?

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    bella domanda

    si imparano sicuramente sul campo, che è il miglior banco prova, e sbagliando e riprovando

    Inoltre documentandosi e coltivando l'inglese che da possibilità di trovare molta piu documentazione


    e non chiedendo la pappa pronta come spesso succede nei forum, anche come questo.
    Questa affermazione non è rivolta a te intendiamoci, ma a tutti quelli che usano i forum solo per aver la roba fatta, senza sapere/imparare nulla dalle risposte degli utenti!

    buon lavoro!
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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