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

    giudizio, consigli, errori, miglioramenti....

    Buongiorno a tutti,
    vi posto il codice del mio form per avere una vostra opinione, giudizio, consiglio per migliorare il codice che lo genera...
    e rinnovare un paio di domande che sono state malposte qualche giorno fa.
    Potete vedere un'anteprima a questo link: http://www.matteomosconi.com/timber2/

    index:
    Codice PHP:
    <!DOCTYPE html>
    <
    html>
        <
    head>
            <
    title>Licenze</title>
        <
    meta http-equiv="Content- Type" content="text/html; charset=iso-8859-1">
        <
    link rel="stylesheet" type="text/css" href="css/layout.css">

            <
    script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script type="text/javascript" src="script.js"></script>

        <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.js"></script> 
        <script type="text/javascript" src="validation_reg.js"></script> 
        </head>

        <body>

    <div class="colonna_SX">
    <form name="form" id="form" method="post" action="riepilogo.php" >
       <fieldset>
        <legend>Informazioni personali </legend>
        <div>
                <label for="user">Nome: </label>
                <input id="user" name="user">
            </div>
            <div>
                <label for="address">Email: </label>
                <input id="address" name="address">
            </div>
            <div>
                <label for="city">Città: </label>
                <input id="city" name="city">
            </div>
        <div>
               <label for="nazione">Nazionalità:[b]*[/b]</label>
                <select id="nazione" name="nazione">
                    <option>Seleziona</option>
                    <option value="italia">Italia</option>
                    <option value="estero">Estero</option>
                </select>
            </div>
            <div>
                <label for="professione">Professione:[b]*[/b]</label>
                <select id="professione" name="professione">
                    <option value="1">Azienda</option>
                    <option value="0">Ingegnere</option>
                    <option value="0">Architetto</option>
                    <option value="2">Studente</option>
                    <option value="2">Privato</option>
                </select>
            </div>
            <div>
                <label for="licenze">Numero di licenze:[b]*[/b]</label>
                <select id="licenze" name="licenze">
                    <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>
                    <option value="7">7</option>
                    <option value="8">8</option>
                    <option value="9">9</option>
                    <option value="10">10</option>
                </select>
            </div>
            <div>
            

    I campi contrassegnati con [b]*[/b] sono obbligatori</p>
            <input type="submit" id="go" value="Conferma" />
            </div>

       </fieldset>
       </form>
    </div>


       <div class="colonna_DX">
       <form>
           <fieldset>
           <legend>Calcolo del prezzo </legend>
            <div>
                       <label for="costo">Costo licenze: </label>
                       <input type="text" id="costo" size="5" readonly="readonly" /> €
                </div>
            <div>
                       <label for="cnpaia">Contributo cnpaia: </label>
                       <input type="text" id="cnpaia" size="5" readonly="readonly" /> €
                </div>
            <div>
                       <label for="iva">IVA: </label>
                       <input type="text" id="iva" size="5" readonly="readonly" /> €
                   </div>
            <div>
                       <label for="ritenuta">Ritenuta: </label>
                       <input type="text" id="ritenuta" size="5" readonly="readonly" /> €
                </div>
            <div>
                       <label for="totale">Totale: </label>
                       <input type="text" id="totale" size="5" readonly="readonly" /> €
                </div>
            <div>
            </br>
                </div>

           </fieldset>
       </form>
       </div>

       </body>
    </html> 
    Riepilogo.php
    Codice PHP:
    <!DOCTYPE html>
    <html>
        <head>

            <title>Riepilogo</title>

        <meta http-equiv="Content- Type" content="text/html; charset=iso-8859-1">
        <link rel="stylesheet" type="text/css" href="css/layout.css">

        </head>

        <body>
        <?PHP     include "functions/conto.php" ;    ?>

        <fieldset>
        <legend>Riepilogo </legend>
        <div>
                <label for="user">Nome: </label>
                <input type="text" name="user" value="<?php echo $user?>" size="20" readonly="readonly" />
            </div>
            <div>
                <label for="address">Email: </label>
                <input type="text" name="address" value="<?php echo $address?>" size="20" readonly="readonly" />
            </div>
            <div>
                <label for="city">Città: </label>
                <input type="text" name="city" value="<?php echo $city?>" size="20" readonly="readonly" />
            </div>
            <div>
                <label for="licenze">Numero di licenze:[b]*[/b]</label>
            <input type="text" name="licenze" value="<?php echo $licenze?>" size="10" readonly="readonly" />
            </div>
            <div>
                <label for="totale">Imponibile:[b]*[/b]</label>
            <input type="text" name="totale" value="<?php echo $totale?>" size="10" readonly="readonly" /> €
            </div>
            <div>
                <label for="pagamento">Metodo di pagamento[b]*[/b]</label>
            <input type="text" name="pagamento" value="Paypal" size="10" readonly="readonly" />
            </div>

        </fieldset>

    <form action="https://www.paypal.com/it/cgi-bin/webscr" method="post">
    <input type="hidden" name="cmd" value="_xclick">
    <input type="hidden" name="business" value="<?php echo $paypal?>">
    <input type="hidden" name="item_name" value="Nome dell'oggetto">
    <input type="hidden" name="currency_code" value="EUR">
    <input type="hidden" name="amount" value="<?php echo $totale?>">
    <input type="image" src="https://www.paypalobjects.com/it_IT/IT/i/btn/btn_paynow_LG.gif" border="0" 
    name="submit" alt="PayPal - Il sistema di pagamento online più facile e sicuro!">
    </form>


       </body>
    </html>
    script.js
    Codice PHP:

    //////////////////////////////////////////////////////////////////////
    //                       PARAMETRI MODIFICABILI                     //
    //////////////////////////////////////////////////////////////////////

    p1=350;        //Prezzo pieno licenza
    p2=250;        //Prezzo scontato licenza
    n=5;        //Numero di licenze minimo per prezzo scontato
    ax=4;        //Aliquota CNPAIA
    ay=21;        //Aliquota IVA
    az=20;        //Aliquota Ritenuta

    //////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////

    $(document).ready(function() {
                
    pieno    p1;            
                
    scontato p2;

                $(
    "#licenze, #nazione, #professione").change(function() {
                var 
    num parseInt($("#licenze").val());

                if (
    num > (n-1)) {
                   var 
    costo scontato num;
                } else {
                    var 
    costo pieno num;
                }

                if ($(
    "#professione").val() != "0" || $("#nazione").val() == "estero") {
                    var 
    cnpaia = (costo 100) * ax ;
                } else {
                    var 
    cnpaia ;
                }

                if ($(
    "#nazione").val() == "italia") {
                    var 
    iva = ((costo cnpaia) / 100) * ay;
                } else {
                    var 
    iva 0;
                }

                if ($(
    "#professione").val() == "2" || $("#nazione").val() == "estero") {
                    var 
    ritenuta ;
                } else {
                    var 
    ritenuta = (costo 100) * az ;
                }

                var 
    totale costo cnpaia iva -ritenuta;
                var 
    totale totale.toFixed(2);

                $(
    "#costo").val(costo);
                $(
    "#cnpaia").val(cnpaia);
                $(
    "#iva").val(iva);
                $(
    "#ritenuta").val(ritenuta);
                $(
    "#totale").val(totale);
                });
        }); 
    validation_reg.js
    Codice PHP:
    $(document).ready(function()
    {
        
    // my method for validate username
        
    $.validator.addMethod("username_regex", function(valueelement) { 
            return 
    this.optional(element) || /^[a-z0-9\.\-_]{3,30}$/i.test(value); 
            }, 
    "Please choise a username with only a-z 0-9.");
            
        $(
    "#form").validate(
        {
            
    rules:{
            
    'user':{
                
    requiredtrue,
                
    minlength3,
                
    username_regextrue,
                },

            
    'address':{
                
    requiredtrue,
                
    emailtrue,
                },

            
    'city':{
                
    requiredtrue,
                
    minlength3,
                
    username_regextrue,
                },

            
    'nazione':{
                
    requiredtrue,
                
    username_regextrue,
                },

            
    'professione':{
                
    requiredtrue,
                },

            
    'licenze':{
                
    requiredtrue,
                },

            },

            
    messages:{
            
    'user':{
                
    required"Il campo username è obbligatorio!",
                
    minlength"Errore",
                
    username_regex"Hai utilizzato caratteri non validi. Sono consentiti solo lettere numeri!",
                },

            
    'address':{
                
    required"Il campo email è obbligatorio!",
                
    email"Inserisci un valido indirizzo email!",
                },

            }
        });
    }); 
    funzione di controllo calcolo del totale
    conto.php
    Codice PHP:
     <?php

    //////////////////////////////////////////////////////////////////////
    //                       PARAMETRI MODIFICABILI                     //
    //////////////////////////////////////////////////////////////////////

    $paypal "mydangerousmind84@hotmail.com";

    $p1 =    350 ;        //Prezzo pieno licenza
    $p2 =    250 ;        //Prezzo scontato licenza
    $n  =    ;        //Numero di licenze minimo per prezzo scontato
    $ax =    ;        //Aliquota CNPAIA
    $ay =    21 ;        //Aliquota IVA
    $az =    20 ;        //Aliquota Ritenuta


    //////////////////////////////////////////////////////////////////////
    //                    PARAMETRI DA NON MODIFICARE                   //
    //////////////////////////////////////////////////////////////////////

    $professione $_POST['professione'];
    $nazione $_POST['nazione'];
    $num $_POST['licenze'];
    $user $_POST['user'];
    $address $_POST['address'];
    $city $_POST['city'];

    //////////////////////////////////////////////////////////////////////
    //                          Validazione Dati                        //
    //////////////////////////////////////////////////////////////////////

    function validateName($user){  
            if(
    strlen($user) < 4)  
                return 
    false;  
            else  
                return 
    true;  
            }  
    function 
    validateEmail($address){  
            return 
    ereg("^[a-zA-Z0-9]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$"$address);  
            } 

    //////////////////////////////////////////////////////////////////////
    //Calcolo del costo Licenza

            
    if ($num > ($n 1)) {
        
    $costo $p2 $num ;
            } else { 
        
    $costo $p1 $num ;
        }

    //Calcolo del contributo CNPAIA

            
    if ($professione != "0" || $nazione == "estero") {
        
    $cnpaia = ($costo 100) * $ax ;
            } else {
            
    $cnpaia ;
        }

    //Calcolo dell'aliquota IVA

        
    if ($nazione == "italia") {
            
    $iva = (($costo $cnpaia) / 100) * $ay;
            } else {
            
    $iva 0;
            }

    //Calcolo della Ritenuta

               
    if ($professione == "2" || $nazione == "estero") {
              
    $ritenuta ;
              } else {
               
    $ritenuta = ($costo 100) * $az ;
               }

    //Calcolo del Totale

        
    $totale $costo $cnpaia $iva $ritenuta ;

    ?>
    I problemi che vi evidenzio subito sono:
    - impaginazione con i css: l'impaginazione su due colonne viene visualizzata correttamente con Firefox ma non con Explorer

    -il controllo di validazione dei dati sul menu a scelta Nazionalità non è corretto infatti mi permettere di procedere anche se il calpo presenta la dicitura: "seleziona"

    -vorrei eliminare la pagina di riepilogo e inserire direttamente il bottone paypal come submit del form... ho fatto un paio di esperimenti a riguardo ma trovo difficoltà ad inserire il suddetto bottone in modo corretto (soprattutto per fargli avviare il file conto.php, il quale genera le varibiali tra le quali $totale che vengono passate a paypal

    Vi ringrazio anticipatamente per la vostra disponibilità
    M

  2. #2
    Ho aggiunto un controllo di validazione del form lato php....

    Nessun suggerimento ?!

    Grazie

  3. #3
    Originariamente inviato da idkfa46
    Ho aggiunto un controllo di validazione del form lato php....

    Nessun suggerimento ?!

    Grazie
    Bravo, l'unica cosa che ti posso dire (a parte che mi piace) è che hai fatto bene ad aggiungere il controllo lato server, se un utente non ha abilitato javascript il controllo se ne va a quel paese

  4. #4
    Grazie...

    Dici che è possibile eliminare la pagina di riepilogo dati e inserire direttamente il tasto paypal nella index ? Vorrei fare una cosa del genere ma trovo difficoltà a passare le variabili a paypal...


  5. #5
    noto che il modulo viene spedito alla pagina di riepilogo anche se non viene scelta la nazionalità. Per la cosa di paypal non ti so dire perchè non l'ho mai fatta una cosa del genere cmq tienimi aggiornato perchè forse a breve lo devo usare ;-)

  6. #6
    Hai ragione...
    sbaglio qualcosane nel controllo di validazione dei select.

    in jquery ho messo
    Codice PHP:
    ...
            
    'nazione':{
                
    requiredtrue,
                
    username_regextrue,
                },
    ... 
    e il relativo form:
    Codice PHP:
        <div>
               <
    label for="nazione">Nazionalità:[b]*[/b]</label>
                <
    select id="nazione" name="nazione">
                    <
    option>Seleziona</option>
                    <
    option value="italia">Italia</option>
                    <
    option value="estero">Estero</option>
                </
    select>
            </
    div
    Pensavo che non assegnando il campo value a "Seleziona" mi ritornasse errore ma evidentemente non è cosi...
    Per ora ho provvisoriamente rimediato inserendo
    <option value="italia">Seleziona</option>
    cosi il calcolo del totale viene cmq fatto per il caso italiano...

    Come dovrei impostare la validazione dei select in modo corretto?

    Grazie

  7. #7
    Non conosco Jquery però andando a naso, visto che utilizzi la stessa procedura sia per il campo nome, sia per il campo di tipo select, mi viene da pensare che viene passato un valore anche se non lo specifichi. Prova a mettere nel modulo alla voce(opzione) Seleziona un valore nullo cosi:

    codice:
    <option value="">Seleziona</option>
    Non ti assicuro niente sto solo tirando a caso

  8. #8
    Fantastico!
    Funziona perfettamente...

    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.