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:
Riepilogo.phpCodice 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>
script.jsCodice 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>
validation_reg.jsCodice 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 = 0 ;
}
if ($("#nazione").val() == "italia") {
var iva = ((costo + cnpaia) / 100) * ay;
} else {
var iva = 0;
}
if ($("#professione").val() == "2" || $("#nazione").val() == "estero") {
var ritenuta = 0 ;
} 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);
});
});
funzione di controllo calcolo del totaleCodice PHP:$(document).ready(function()
{
// my method for validate username
$.validator.addMethod("username_regex", function(value, element) {
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':{
required: true,
minlength: 3,
username_regex: true,
},
'address':{
required: true,
email: true,
},
'city':{
required: true,
minlength: 3,
username_regex: true,
},
'nazione':{
required: true,
username_regex: true,
},
'professione':{
required: true,
},
'licenze':{
required: true,
},
},
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!",
},
}
});
});
conto.php
I problemi che vi evidenzio subito sono:Codice PHP:<?php
//////////////////////////////////////////////////////////////////////
// PARAMETRI MODIFICABILI //
//////////////////////////////////////////////////////////////////////
$paypal = "mydangerousmind84@hotmail.com";
$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
//////////////////////////////////////////////////////////////////////
// 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 = 0 ;
}
//Calcolo dell'aliquota IVA
if ($nazione == "italia") {
$iva = (($costo + $cnpaia) / 100) * $ay;
} else {
$iva = 0;
}
//Calcolo della Ritenuta
if ($professione == "2" || $nazione == "estero") {
$ritenuta = 0 ;
} else {
$ritenuta = ($costo / 100) * $az ;
}
//Calcolo del Totale
$totale = $costo + $cnpaia + $iva - $ritenuta ;
?>
- 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

Rispondi quotando
