- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Carrello HTML - Invio modulo tramite email
-
Carrello HTML - Invio modulo tramite email
Ciao a tutti: ho bisogno di una vostra mano!
Ho creato (non proprio da solo..) una specie di carrello. Nella pagina ordini, che raccoglie tutti i dati relativi alla spedizione, c'è questo modulo, che verrà inviato per email: so che è sconsigliato utilizzare l'html per questo genere di cose ma è l'unica soluzione che ho.
Ora però non riesco a creare la funzione che invia il modulo tramite email!!! Questo è il codice (fatto tramite front page):<script language="javascript"> var numprod=0; function punteggiatura(num) { retval =""+num; if (retval < 1000) { while (retval.length < 10){ retval =" "+retval } } if ((retval <= 999999) && (retval >= 1000)) { temp1 = retval.substring(0,retval.length-3); temp2 = retval.substring(retval.length-3,retval.length+1); retval =temp1+"."+temp2; while (retval.length < 10){ retval =" "+retval } } if(retval >= 1000000) { temp1 = retval.substring(0,retval.length-6); temp2 = retval.substring(retval.length-6,retval.length-3); temp3 = retval.substring(retval.length-3,retval.length+1); retval=temp1+"."+temp2+"."+temp3; while (retval.length < 10){ retval =" "+retval } } return retval; } document.write('<div align="center"><center>'); var quant=0; var prezzo=0; var totale=0; var string=document.cookie; var puntatore=string.lastIndexOf("Lampade=#"); var lung=string.indexOf("##"); 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))*(parseInt(Qt)); SubTotale+=parseInt(Sub); eval("form.Totale"+i+".value=punteggiatura(Sub)"); } var indice=form.Trasporti.selectedIndex; Prezzoup=form.Trasporti.options[indice].value; 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); } 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('<p><font size="1" face="Verdana" color="#FFFFFF">Per poter effettuare un ordine è necessario aggiungere almeno un articolo nel carrello. <br><br><b><a href="shop.htm">Vai alla pagina shop</a></font></b></p>'); stop=1;} else { document.write('<br><center><font size="1" face="Verdana" color="#FFFFFF">Tutti i campi sono obbligatori.<br>E\' possibile cambiare la quantità degli articoli.<br>Per eliminare un articolo immettere il valore \"0\".</center><br>') document.write('<form METHOD="POST" ACTION="[email protected]"><!-- webbot bot="SaveResults" S-Email-Format="TEXT/PRE" S-Email-Address="[email protected]" S-Email-Subject="Nuovo ordine" S-Builtin-Fields -->'); document.write('<div align="center"><center>'); document.write('<table border="1" cellspacing="1"> <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 border="1" cellspacing="1"><font>'); while (puntatore<=lung) { if (string.charAt(puntatore) == "@") { cont++; document.write('<tr><td align="right">Articolo</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=parseInt(string.substring(subpuntatore, puntatore)); document.write('<input type="hidden" name="Prezzo'+cont+'" value="'+prezzo+'"></td>'); puntatore++; subpuntatore=puntatore; while (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>'); puntatore++; subpuntatore=puntatore; while ((string.charAt(puntatore) != "@") && (string.charAt(puntatore) != "#")) puntatore++; document.write('<td align="right">Taglia</td>'); document.write('<td align="right"><input type="text" name="Taglia'+cont+'" size="6" '); document.write('value="'+string.substring(subpuntatore, puntatore)+'" maxlength="4"></td>'); totale+=prezzo*quantit; document.write('<td align="right">Totale</td>'); document.write('<td align="right">? <input type="text" name="Totale'+cont+'" size="12" '); document.write('value="'+punteggiatura(prezzo*quantit)+'" style="text-align: right" onFocus="this.blur()"></td>'); puntatore--; document.write('</tr>'); } puntatore++; } } totale+=20000 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 value="7">Si</option>'); document.write('<option value="0">No</option>'); document.write('</select></td><td colspan="4" align="right"> </td>'); document.write('<td align="right">Totale</td>'); document.write('<td align="right">? <input type="text" name="TotaleTrasporti" size="12" value="'+punteggiatura(20000)+'" style="text-align: right" onFocus="this.blur()"></td>'); document.write('</tr><tr><td colspan="6" align="right"> </td>'); document.write('<td align="right"><b>Totale</b></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>
Praticamente è uno script che raccoglie dai cookies i dati salvati precedentemente e, quando non sono presenti dati, da un messaggio di errore.
Vi prego, datemi una mano!!!
Grazie!
-
Ciao
ti invito a leggere il regolamento in ogni sua parte.
Con javascript non puoi inviare email direttamente, ma dovresti affidarti al client di posta dell'utente.
Questo in molti casi, probabilmente la maggioranza, non è possibile, visto il client non è correttamente configurato.
Devi necessariamente ricorrere a operazioni lato server: php, asp, cgi, ecc...
-
Grazie per avermi risposto, anche se non è proprio la risposta che mi sarei aspettato..
Premetto con il chiedere scusa se ho aperto 3 volte la stessa discussione, ma il mio browser sembrava non dare più segni di vita! (Avrò cliccato Invia una 30ina di volte e mi meraviglio che ne abbia accettate solo tre!)In realtà so bene come funziona l'invio delle email tramite php ma non ho la possibilità in quanto posso creare un sito solo html.:x
Lo script di cui ho bisogno deve creare una email in outlook, o nel programma predefinito per l'invio della posta, contenente i valori immessi nei vari form..Nello script che ho postato esiste già, ma non funziona!!!:oPotete aiutarmi?
Grazie mille.:)
-
Ciao
Il fatto è che per capire il funzionamento e sistemarlo ci vorrebbero ore.Hai già una mezza idea di quale sia il problema?
Altrimenti che ne dici di partire come base da questo e poi adattarlo alle tue esigenze?
http://www.shop.nopdesign.com/ (demo)
http://www.nopdesign.com/freecart/ (pagina script)
-
Ehilà, che bello scrpit!
Peccato.. dovrò ricominciare tutto d'accapo ma.. ne varrà la pena! Grazie 1000!
-
Uno script davvero eccellente: ora però ho un altro problema..
Ho provato ad inserire nel sito lo script che mi hai consigliato (http://www.nopdesign.com/freecart/) ma non sono riuscito ugualmente a creare lo script che inviasse tutti i dati per email tramite il client di posta elettronica.
Mi basta anche che lo script crei una nuova email, con testo il contenuto del cookie (l'ordine, in breve).
Riusciresti ad aiutarmi? lo script è uguale a quello da te linkato.Grazie!!!
-
Devi necessariamente utilizzare php o asp.
Non c'è modo di inviare mail con JS. Al massimo in Ajax, ma serve sempre uno script lato server che invia la mail...
Sicuro che non hai modo di usare php? Solitamente tutti i web server supportano o php o asp o entrambi.
-
Ciao Antonio, grazie per aver risposto.
Ti spiego subito: so che tramite front page (o semplicemente uno script), è possibile creare una funzione che crea una nuova email nel client con il testo o i valori inseriti nel modulo della pagina. Non c'è bisogno che la invii automaticamente, ma solo che imposti l'email con destinatario, oggetto e contenuto.
Un esempio più semplice sarebbe un form con un campo testo: tramite la funzione submit del modulo, si creerebbe una email nel client predefinito di posta, con testo il contenuto del modulo. Tutto quiHelp!!!
-
Ovviamente (?) ho la soluzione per te!
Basta lanciare alla fine dello script
window.location="mailto:[VARIABILE EMAIL]?subject=[VARIABILE OGGETTO MESSAGGIO]&body=[VARIABILE CORPO MESSAGGIO]";fai attenzione ad includere le variabili nella stringa nel modo corretto!
Ciao
PS: un ottimo generatore di link mailto lo trovi qui:
-
Ritornando alla proposta dello script lato server.... qual'è quello più semplice da inserire? Esiste qualche esempio già pronto?
Vi ricordo ancora che devo inviare una serie di campi ad un indirizzo email.Grazie a tutti!!!
-
@bubi said:
Ritornando alla proposta dello script lato server.... qual'è quello più semplice da inserire? Esiste qualche esempio già pronto?
Vi ricordo ancora che devo inviare una serie di campi ad un indirizzo email.Grazie a tutti!!!
Ce ne sono finche vuoi di script già fatti.. Però devi decidere che linguaggio usare (se php,asp,asp.net,js ....)
-
Il più semplice, ti prego!!! Ho già dei dati salvati in cookie da inviare.. (si tratta di un carrello in js)
Proprio adesso ne ho trovato uno in php: ho installato il software EasyPHP come descritto nella guida GT, però quando avvio la funzione submit collegata all'azione send.pl, invece di inviare i dati, visualizzo tutto il codice!!!
ES:
#!/usr/bin/perl require 5.001; ######################################################################## # # # User defined variables: # # $header - string value containing the complete # # path of the HTML page header # # $footer - string value containing the complete # # path of the HTML page footer # # $mailprogram - string value containing the complete path to # # the sendmail binary on the system. # # $youremail - string value containing the email address to # # send catalog orders in EMAIL or BOTH modes # # **Don't forget to put a \ before the @ in your # etc...
Cosa non va? Ho salvato tutti i file nella cartella www!!! :bho: