• User

    Eseguire un totale all'interno di un form

    Ciao ragazzi,
    il problema è questo. Ho un form che permette ad un utente di inserire dei biglietti in un carrello tramite un form. Il codice del form è il seguente:

    [PHP]
    <?php
    // fai partire la connessione al db
    mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("non riesco a connettermi");
    mysql_select_db("$db_name") or die ("Non riesco a selezionare il database");
    //imposti la query per vedere la disponibilità
    if(empty($_GET["id"])){
    echo"Non hai selezionato nulla";
    }
    else{
    $query= "SELECT * FROM eventi WHERE event_id='".$_GET['id']."'";
    $select=mysql_query($query) or die("Query fallita");
    // parte il ciclo che fara solo un giro e basta
    while($row = mysql_fetch_array($select))
    {
    if ($row['disponibilita']==0)
    {
    echo "
    <table>
    <tr>
    <td><div>Prezzo</div></td>
    <td><div>Qtà</div></td>
    <td><div>Totale</div></td>
    </tr>
    <tr>
    <td colspan='4'> </td>
    </tr>
    <tr>
    <td>
    $row[prezzo]</td>
    <td><select name='quantita'>
    <option value='0'>0</option>
    <option value='1'>1</option>
    <option value='2'>2</option>
    <option value='3'>3</option>
    <option value='4'>4</option>
    <option value='5'>5</option>
    <option value='6'>6</option>
    </select></td>
    <td/>        </tr>
    <tr>
    <td colspan='5'> </td>
    </tr>
    </table>
    </form> ";
    }
    else
    {

            echo" 
                <table> 
                    <tr> 
                      <td><div>Disponibilità</div></td> 
                      <td><div>Prezzo</div></td> 
                      <td><div>Qtà</div></td> 
                      <td><div>Totale</div></td> 
                    </tr> 
                    <tr> 
                      <td colspan='5'> </td> 
                    </tr> 
                    <tr> 
                      <td> C'&egrave; ancora disponibilit&agrave;</td> 
                      <td> 
                        $row[prezzo]</td> 
                      <td><select name='quantita'> 
                          <option value='0'>0</option> 
                          <option value='1'>1</option> 
                          <option value='2'>2</option> 
                          <option value='3'>3</option> 
                          <option value='4'>4</option> 
                          <option value='5'>5</option> 
                          <option value='6'>6</option> 
                        </select></td> 
                    <td>input type='text' name='totale' value=''</td> 
                      <td/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tr> 
                    <tr> 
                      <td colspan='5'> </td> 
                    </tr> 
                  </table> 
            <input type='submit' class='button' value='AGGIUNGI AL CARRELLO'/></form> 
             
            "; 
         
        } 
         }  
    } 
    

    ?>
    [/PHP]

    Come potete vedere il form valuta la disponibilità di biglietti. Se ce ne sono allora viene stampata la tabella con scritto "c'è ancora dispobilità" e vari campi, tra cui il prezzo, la scelta della quantità da acquistare ed il totale. Il prezzo viene estratto dalla tabella eventi, così come il valore della disponibilità. Quel che vorrei fare è questo. Nel campo totale fare in modo che si faccia la moltiplicazione tra il numero di biglietti scelti e il prezzo per singolo biglietto, in modo appunto da ottenere un totale. In questo modo il valore del totale, tramite il submit, viene passato ad una tabella dal nome carrello, ove vi sono i vari campi relativi agli acquisti effettuati dal cliente. Spero di aver spiegato bene il quesito.

    E' fattibile? Come si potrebbe fare?


  • Consiglio Direttivo

    Per quello che ho capito al submit basta che ti recuperi la variabile quantita selezionata nel form ed il prezzo che sta nel DB e nella colonna fai la moltiplicazione
    [php] $prezzounitario = ........; // lo prendi dal Db
    $quantita = $_GET['quantita'];
    $totale = $quantita * $prezzounitario;
    echo "............
    <td>".$totale."</td>
    .........";[/php]
    e memorizzare nel contempo il dato anche il un hidden data del submit che ti manda al carrello:
    [php]echo "....
    <input type="hidden" name="totale" value="".$totale."">........";[/php]
    così quando vai al carrello ti posterà il dato del totale.
    Credo debba andare 😉


  • User Attivo

    MODIFICATO: l'ho inviato assieme a Samyorn quindi scusa se ci sono ripetizioni!!!

    credo che questa domanda sia + da javascript che da php/mysql, cmq, ti sconsiglierei vivamente di inviare il totale tramite form, dato che potrebbe essere modificato semplicemente, e fare un controllo in php successivamente, vanificherebbe quello lato client.

    cmq:
    <input type="hidden" id="val_p_1" value="15.00" />
    <select id="quantita_1" onchange="mod('1');">
    <option>1</option>
    <option>2</option>
    </select>
    <input type="hidden" id="tot_1" name="tot" value="" />

    <script>
    function mod(id)
    {
    document.getElementById('tot_'+id).value = (document.getElementById('quantita_'+id).value1)(document.getElementById('val_p_'+id).value*1);
    }
    </script>

    su per giù è così!


  • User

    Vi ringrazio entrambi.
    Proverò entrambe le soluzioni, ma per Digital, quello che hai postato tu è javascript? Non ho tanta dimestichezza in Java per cui non è che potresti un attimo spiegarmelo oppure farmi vedere come potrei impostare il form con javascript?