Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Popolare array di sessione PHP

    Buonasera a tutti,

    sto realizzando un progetto per l'università e devo costruire una semplice applicazione web e-commerce.

    Tramite PHP sono riuscito a fare tutto solo che vorrei rendere la cosa un po' più, per così dire, elegante.

    Possiedo una lista di prodotti ed ognuno ha un tasto aggiungi. Questo tasto aggiungi passa una pagina aggiungi_elemento.php l'id del prodotto e la quantità che è sempre uno. Questa pagina riempie un array di sessione in questo modo: $_SESSION['carrello'][]=array($_GET['id'],$_GET['qta']); e poi reindirizzo il tutto alla pagina precedente.

    Quello che vorrei fare è riempire l'array senza chiamare una pagina esterna in modo tale da reindirizzare ogni volta la pagina. Penso che sia una cosa fattibile in javascript ma purtroppo lo conosco davvero poco e cercando sul web, anche su questo forum, non ho ben capito come fare.

    Se potete darmi qualche indicazione in merito ve ne sarei molto grato. Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    puoi trasformare l'array php in un array javascript o effettuare una chiamata ajax alla pagina php

  3. #3
    Grazie.
    Secondo voi qual'è la soluzione migliore? E nel caso, se non chiedo troppo, è possibile avere un esempio? Nel frattempo provo a guardare quello che mi hai detto.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    la soluzione migliore penso sia la chiamata ajax, con poche righe di codice js risolvi, in rete trovi moltissimi esempi

  5. #5
    In questi giorni ho provato a guardare come fare questa cosa ma non ci ho capito nulla essendo questo il mio primo approccio.

    Dunque, attraverso un ciclo while genero la visualizzazione degli articoli. Ogni articolo ha un bottone in questo modo:

    <div class="add">[img]styles/Images/add_icon.png[/img]Aggiungi</div>

    Da quello che ho capito devo mettere sul link una funziona "onclick", in cui passo due variabile in questo modo?

    <div class="add">[img]styles/Images/add_icon.png[/img]Aggiungi</div>

    E creare uno script in cui c'è una funziona javascript che fa la chiamata AJAX alla pagina aggiungi_elemento.php, ma non ho capito come fare la chiamata vera e propria alla pagina.

    Grazie in anticipo.

    <script>
    function inoltra_dati(id, qta) {
    }
    </script>

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    qua trovi un codice di esempio di chiamata ajax:

    http://www.w3schools.com/ajax/tryit....=tryajax_first

  7. #7
    Originariamente inviato da Danny FTC
    In questi giorni ho provato a guardare come fare questa cosa ma non ci ho capito nulla essendo questo il mio primo approccio.

    Dunque, attraverso un ciclo while genero la visualizzazione degli articoli. Ogni articolo ha un bottone in questo modo:

    <div class="add">[img]styles/Images/add_icon.png[/img]Aggiungi</div>

    Da quello che ho capito devo mettere sul link una funziona "onclick", in cui passo due variabile in questo modo?

    <div class="add">[img]styles/Images/add_icon.png[/img]Aggiungi</div>

    E creare uno script in cui c'è una funziona javascript che fa la chiamata AJAX alla pagina aggiungi_elemento.php, ma non ho capito come fare la chiamata vera e propria alla pagina.

    Grazie in anticipo.

    <script>
    function inoltra_dati(id, qta) {
    }
    </script>
    Ciao, scusa se ti rispondo solo... grazie al tuo esempio sono riuscito a fare la chiamata ajax.

    Ho un altro problema. Selezionando un prodotto viene aperto un pop up che mi permette di inserire la quantità e il prezzo del prodotto. Al click richiamo la mia funzione in questo modo. La chiamata non cambia rispetto a quanto fatto precedentemente solo che non va, non la effettua. Dove sbaglio? Grazie.

    <script>
    function myfunction(id)
    {
    var prezzo = document.myForm.prezzo.value;
    var qta = document.myForm.qta.value;
    var id=id;

    if(qta==""){
    alert("Inserire una quantità per procedere.");

    }else{

    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp .responseText;
    }
    }

    xmlhttp.open("GET","aggiungi_elemento.php?id="+id+ "&qta="+qta+"&prezzo="+prezzo,true);
    xmlhttp.send();


    alert("prezzo: "+prezzo + " quantita: "+qta + " codice prodotto: " +id);

    window.close();
    }

    }
    </script>

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    il codice pare corretto, perche non funziona non posso saperlo , ci posso essere un sacco di motivi, ti consiglio di utilizzare firebug per monitorare le chiamata ajax, magari la chiamata avviene correttamente e va in eccezione la parte server
    Inoltre controlla sempre la console js per vedere se ci sono errori...

  9. #9
    Originariamente inviato da Danny FTC
    Ciao, scusa se ti rispondo solo... grazie al tuo esempio sono riuscito a fare la chiamata ajax.

    Ho un altro problema. Selezionando un prodotto viene aperto un pop up che mi permette di inserire la quantità e il prezzo del prodotto. Al click richiamo la mia funzione in questo modo. La chiamata non cambia rispetto a quanto fatto precedentemente solo che non va, non la effettua. Dove sbaglio? Grazie.

    <script>
    function myfunction(id)
    {
    var prezzo = document.myForm.prezzo.value;
    var qta = document.myForm.qta.value;
    var id=id;

    if(qta==""){
    alert("Inserire una quantità per procedere.");

    }else{

    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp .responseText;
    }
    }

    xmlhttp.open("GET","aggiungi_elemento.php?id="+id+ "&qta="+qta+"&prezzo="+prezzo,true);
    xmlhttp.send();


    alert("prezzo: "+prezzo + " quantita: "+qta + " codice prodotto: " +id);

    window.close();
    }

    }
    </script>
    Ho appena fatto un check. La funzione va correttamente, solo che non va su safari.

  10. #10
    La chiamata funziona su tutti i browser tranne che su Safari. Non so come mai ma per ora va bene così...

    Ho un altra problema: ho un popup con un form. Cliccando sul bottone chiamo una funzione javascript. Se un campo è vuoto mostro un alert. Chiudendo l'alert si refresha il popup perdendo così i dati inseriti nel form, come evitare il refresh e chiudere solamente l'alert?

    Questo è il form e la funzione:

    <form method="post" id="myForm" name="myForm" >

    <h2></h2>



    <label>Quantità:</label>
    <input class="sf" name="qta" id="qta" type="text" value="" />

    //



    <label>Prezzo:</label>
    //c'è un select qui



    </p>
    <?php

    $idarticolo=$_GET['id'];
    ?>
    <p class="buttons">
    <input type="submit" name="imageField" id="imageField" onClick="return myfunction('<?php echo $idarticolo ?>')"; value="INVIA I DATI" class="send" />
    <div class="clr"></div>
    </p>

    </form>



    <script>
    function myfunction(id)
    {
    var prezzo = document.myForm.prezzo.value;

    array=prezzo.split("//");

    var prezzo1 = array[0];
    var sconto = array[1];



    var qta = document.myForm.qta.value;
    var id=id;

    if(qta==""){
    alert("Inserire una quantità per procedere.");

    }
    else{

    ....
    }

    </script>


    Grazie.

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.