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.php
script.js
validation_reg.js
funzione di controllo calcolo del totale
conto.php
I problemi che vi evidenzio subito sono:
- impaginazione con i css:
con il segiente 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à
e mi scuso se il post riporta una parte di domanda gia fatta ma, questa volta, spero di essermi spiegato in modo più chiaro
Matteo.
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:
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>
<p>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
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
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);
});
});
validation_reg.js
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!",
},
}
});
});
funzione di controllo calcolo del totale
conto.php
PHP:
<?php
//////////////////////////////////////////////////////////////////////
// PARAMETRI MODIFICABILI //
//////////////////////////////////////////////////////////////////////
$paypal = "[email protected]";
$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 ;
//echo "Nazionalità: = $nazione <br />";
//echo "Professione: = $professione <br />";
//echo "Quantità: = $num <br />";
//echo "Costo Licenze: = $costo Euro<br /><br />";
//echo "CNPAIA: = $cnpaia Euro<br />";
//echo "IVA: = $iva Euro<br />";
//echo "Ritenuta: = $ritenuta Euro<br />";
//echo "TOTALE: = $totale Euro<br /><br />";
?>
I problemi che vi evidenzio subito sono:
- impaginazione con i css:
PHP:
div.colonna_SX{
width: 340px;
padding: 1px 1px;
float:left;
margin: 0px;
text-align:left;
}
div.colonna_DX {
width: 340px;
padding: 1px 1px;
float:rigth;
margin: 0px;
text-align:left;
}
-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à
e mi scuso se il post riporta una parte di domanda gia fatta ma, questa volta, spero di essermi spiegato in modo più chiaro
Matteo.