per me sei un'apparizione...tanto sperata quanto desiderata...
sono nella
sto cercando di metter su un piccolo carrello e sto disgraziatamente usando javascript.
in sostanza...quando clicco sul carrello relativo a prodotti presi da un db mysql creo un cookie con nome@prezzo@quantità (si aggiungono altri prodotti nello stesso cookie separandoli con #).
Chiaramente anche il modulo finale di riepilogo è in javascript...legge il cookie e mi restituisce i campi, quantità e prezzo.
codice:
<script language="javascript">
function punteggiatura(num) {
retval =""+num;
if (retval < 100) {
retval="0,"+retval;
while (retval.length < 10){
retval =" "+retval
}
}
if ((retval <= 99999) && (retval >= 100)) {
temp1 = retval.substring(0,retval.length-2);
temp2 = retval.substring(retval.length-2,retval.length+1);
retval =temp1+","+temp2;
while (retval.length < 10){
retval =" "+retval
}
}
if(retval >= 100000) {
temp1 = retval.substring(0,retval.length-5);
temp2 = retval.substring(retval.length-5,retval.length-2);
temp3 = retval.substring(retval.length-2,retval.length+1);
retval=temp1+"."+temp2+","+temp3;
while (retval.length < 10){
retval =" "+retval
}
}
return retval;
}
function update(form) {
var Prezzoup=0;
var Qt=0;
var Sub=0;
var SubTotale=0;
for (i=1; i<=cont; i++) {
Prezzoup=eval("form.Prezzo"+i+".value");
Qt=eval("form.Quant"+i+".value");
if (isNaN(Qt) || (Qt<0) || (Qt=="")) {Qt=1;
eval("form.Quant"+i+".value=1");}
if (Qt>999) {Qt=999;
eval("form.Quant"+i+".value=999");}
Sub=(parseInt(Prezzoup*100))*(parseInt(Qt));
SubTotale+=Sub;
eval("form.Totale"+i+".value=punteggiatura(Sub)");
}
var indice=form.Trasporti.selectedIndex;
Prezzoup=parseInt(form.Trasporti.options[indice].value)*100;
form.TotaleTrasporti.value=punteggiatura(Prezzoup);
SubTotale+=parseInt(Prezzoup);
form.TotaleFinale.value=punteggiatura(SubTotale);
}
function errore(campo) {
alert("Il campo "+campo+" è vuoto");
}
function controllo(form) {
var err=0;
if (form.email.value=="") err="Email";
if (form.nazione.value=="") err="Nazione";
if (form.cap.value=="") err="CAP";
if (form.provincia.value=="") err="Provincia";
if (form.comune.value=="") err="Comune";
if (form.indirizzo.value=="") err="Indirizzo";
if (form.societa.value=="") err="Società";
if (form.cognome.value=="") err="Cognome";
if (form.nome.value=="") err="Nome";
if (err==0) Ordine.submit();
else errore(err);
}
document.write('<p align="center">Modulo d\'ordine</p>');
var quantit=0;
var prezzo=0;
var totale=0;
var cont=0;
var stop=0;
var string=document.cookie;
var puntatore=string.lastIndexOf("Lampade=#");
var lung=string.indexOf("##");
if (puntatore == -1) {document.write('
<center>Il carrello è vuoto</center>'); stop=1;}
else {
document.write('
<center>Tutti i campi sono obbligatori.
E\' possibile cambiare la quantità degli articoli.
Per eliminare un articolo immettere il valore \"0\".</center>
')
document.write('<form method="post" name="Ordine" action="send_ord.php">');
document.write('<div align="center"> <center>');
document.write('<table class="ordina" width="600" bgcolor="#CEE7FF" border="0" cellpadding="5"> <tr>');
document.write('<td align="right">Nome</td>');
document.write('<td><input type="text" name="nome" size="20" tabindex="1"></td> </tr>');
document.write('<tr> <td align="right">Cognome</td>');
document.write('<td><input type="text" name="cognome" size="20" tabindex="2"></td></tr>');
document.write('<tr> <td align="right">Società</td>');
document.write('<td><input type="text" name="societa" size="20" tabindex="3"></td></tr>');
document.write('<tr><td align="right">Indirizzo</td>');
document.write('<td><input type="text" name="indirizzo" size="30" tabindex="4"></td></tr>');
document.write('<tr><td align="right">Comune e provincia</td>');
document.write('<td><input type="text" name="comune" size="20" tabindex="5"> <input type="text" name="provincia" size="4" tabindex="6" maxlength="2"></td></tr>');
document.write('<tr><td align="right">CAP</td>');
document.write('<td><input type="text" name="cap" size="7" tabindex="7" maxlength="5"></td></tr>');
document.write('<tr><td align="right">Nazione</td>');
document.write('<td><input type="text" name="nazione" size="20" tabindex="8"></td></tr>');
document.write('<tr><td align="right">E-mail</td>');
document.write('<td><input type="text" name="email" size="20" tabindex="9"></td></tr>');
document.write('</table></center></div>');
document.write('<div align="center"><center><table class="ordina" width="600" bgcolor="#CEE7FF" border="0" cellpadding="5">');
while (puntatore<=lung) {
if (string.charAt(puntatore) == "@") {
cont++;
document.write('<tr><td align="right">Titolo</td>');
puntatore++;
subpuntatore=puntatore;
while (string.charAt(puntatore) != "@") puntatore++;
document.write('<td align="right"><input type="text" name="Articolo'+cont+'" size="20"');
document.write('value="'+string.substring(subpuntatore, puntatore)+'" onFocus="this.blur()">');
puntatore++;
subpuntatore=puntatore;
while (string.charAt(puntatore) != "@") puntatore++;
prezzo=parseFloat(string.substring(subpuntatore, puntatore));
document.write('<input type="hidden" name="Prezzo'+cont+'" value="'+prezzo+'"></td>');
puntatore++;
subpuntatore=puntatore;
while ((string.charAt(puntatore) != "@") && (string.charAt(puntatore) != "#")) puntatore++;
quantit=parseInt(string.substring(subpuntatore, puntatore));
document.write('<td align="right">Quantità</td>');
document.write('<td align="right"><input type="text" name="Quant'+cont+'" size="5" ');
document.write('value="'+quantit+'" onChange="update(this.form)" maxlength="3"></td>');
totale+=parseInt(prezzo*quantit*100);
document.write('<td align="right">Totale</td>');
document.write('<td align="right">€<input type="text" name="Totale'+cont+'" size="12" ');
document.write('value="'+punteggiatura(parseInt(prezzo*quantit*100))+'" style="text-align: right" onFocus="this.blur()"></td>');
puntatore--;
document.write('</tr>');
}
puntatore++;
}
}
totale+=1052; //prezzo delle spese di spedizione di default (10,52*100)
if (stop != 1) {
document.write('<tr><td align="right">Spedizione</td>');
document.write('<td align="right"><select size="1" name="Trasporti" onChange="update(this.form)">');
document.write('<option selected value="10,52">Italia</option>');
document.write('<option value="20,41">Europa</option>');
document.write('<option value="30,85">Asia</option>');
document.write('<option value="54,23">America</option>');
document.write('</select></td><td colspan="2" align="right"></td>');
document.write('<td align="right">Totale</td>');
document.write('<td align="right">€<input type="text" name="TotaleTrasporti" size="12" value="'+punteggiatura(1052)+'" style="text-align: right" onFocus="this.blur()"></td>');
document.write('</tr><tr><td colspan="4" align="right"></td>');
document.write('<td align="right">Totale</td>');
document.write('<td align="right">€<input type="text" name="TotaleFinale" size="12" value="'+punteggiatura(totale)+'" style="text-align: right" onFocus="this.blur()"></td>');
document.write('</tr></table></center></div>');
document.write('<p align="center"><input type="button" value="Invia" name="B1" tabindex="10" onClick="controllo(this.form)">');
document.write('<input type="reset" value="Reimposta" name="B2" tabindex=11"></p>');
}
document.write('</form>');
</script>
Adesso invio il tutto con POST a send.php (non sono così fagiano come credi..avevo usato il post ma lavoro in locale con easyphp e non so perchè ma non va)
Codice PHP:
<?php
// L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$to = "webmaster@progedit.com";
//errori
$back = "<font class='estratto'>[url='javascript:history.go(-1);']Torna indietro[/url]</font>";
$errore = "<center>
<font class='breve'>Si sono verificati i seguenti errori:</font>\n</center>";
//semplifico le var
$nomex = trim(stripslashes($_POST['nome']));
$cognomex = trim(stripslashes($_POST['cognome']));
$societax = trim(stripslashes($_POST['societa']));
$indirizzox = trim(stripslashes($_POST["indirizzo"]));
$comunex = trim(stripslashes($_POST["comune"]));
$provinciax = trim(stripslashes($_POST["provincia"]));
$capx = trim(stripslashes($_POST["cap"]));
$nazionex = trim(stripslashes($_POST["nazione"]));
$emailx = trim(stripslashes($_POST["email"]));
$articolox = trim(stripslashes($_POST["Articolo"]));
$prezzox = trim(stripslashes($_POST["Prezzo"]));
$quantx = trim(stripslashes($_POST["Quant"]));
// IL SOGGETTO DELLA MAIL
$subject = "Ordine: ";
// COSTRUIAMO IL CORPO DEL MESSAGGIO
$body = "Ecco il messaggio inviato dal visitatore:\n\n";
$body .= "Nome: " . $nomex . "\n";
$body .= "Cognome: " . $cognomex . "\n\n";
$body .= "Società: " . $societax . "\n\n";
$body .= "Indirizzo " . $indirizzox . "\n";
$body .= "Comune " . $comunex . "\n";
$body .= "provincia " . $provinciax . "\n";
$body .= "CAP " . $capx . "\n";
$body .= "Nazione " . $nazionex . "\n";
$body .= "Email " . $emailx . "\n";
$body .= "Articolo " . $articolox . "\n";
$body .= "Prezzo " . $prezzox . "\n";
$body .= "Quantità " . $quantx . "\n";
// INTESTAZIONI SUPPLEMENTARI
$headers = "From: Modulo utenti<modulo@progedit.com>";
if ($nomex == '') {
$errore .= "<center>
<font class='breve'>Hai dimenticato di inserire il tuo nome</font>
$back</center>";
echo $errore;
die();
}
//controllo sul campo email
if(ereg(".+\@.+\..+", $emailx) && (ereg("^[a-zA-Z0-9_@.-]+$", $emailx)) && ($emailx != '')) {
// INVIO DELLA MAIL
if(@mail($to, $subject, $body, $headers)) { // SE L'INOLTRO E' ANDATO A BUON FINE...
echo "<center>
<font class='breve'>La mail è stata inviata con successo
La nostra redazione ti risponderà al più presto
Grazie</font>
$back</center>";
} else {// ALTRIMENTI...
echo "<center>
<font class='breve'>Si sono verificati dei problemi nell'invio della mail</font>
$back</center>";
}
}
else { echo "<center>
<font class='breve'>Inserisci una email corretta</font>
$back</center>"; }
?>