Non so se posto giusto...qualcuno sa dirmi se questa funzione javascript è scritta in modo corretto?
grazie!Codice://INVIA IL MODULO else { document.modulo.action = "invia.php"; document.modulo.submit(); }
Non so se posto giusto...qualcuno sa dirmi se questa funzione javascript è scritta in modo corretto?
grazie!Codice://INVIA IL MODULO else { document.modulo.action = "invia.php"; document.modulo.submit(); }
Ma c'è altro prima dell'else?
Comunque se non sbaglio dovresti inserire dopo document anche il nome del form, se lo per inviare un form, magari se validato ecc..
Ultima modifica di libflagspaces : 12-07-2009 alle ore 09.52.06
allora modulo cos'é?? Non ti pare sia il nome??
Molto probabilmente controllerà il tutto proprio con l'if: altrimenti l'else che significato ha???
@lucatartufari: non ho risposto ieri perché mi sembrava ok, ma io l'action non lo imposto mai così... lo metto sempre dentro il tag form!. Ma hai provato se ti funziona??
Ciao!
regolamento altervista_______________ regolamento forum
Prova a farmi vedere il codice.... Ma non ti garantisco niente
Ciao!
regolamento altervista_______________ regolamento forum
Prova ad usare setAttribute:
Codice:document.modulo.setAttribute("action", "invia.php");
ciao nokiagames,
ho provato ma niente...mi si aprono i vari alert ma quando clicco su ok mi apre 1 pagina bianca, io non vorrei che ciò accadesse, vorrei l'alert finale: "grazie per averci contatti", l'azzeramento del form ed il redirect sulla homepage.
posto il codice, sia form che javascript e se serve poi posso darvi anke il php.
così non invio ancora i dati via mail e il redirect nn mi funziona...continua ad aprirsi la pagina bianca dopo l'alert :'( AIUTOOOOOO!!!!!Codice HTML:<!-- Inizio FORM invio dati --> <form name="modulo" method="post" action="invia.php"> <div class="tab2"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="22%" height="20" class="colorchange2">Nominativo*:</td> <td width="78%" height="20"><input type="text" name="nominativo" id="nominativo" class="field"/></td> </tr> <tr> <td height="20" class="colorchange2">Società:</td> <td height="20"><input type="text" name="societa" id="societa" class="field" /></td> </tr> <tr> <td height="20" class="colorchange2">Telefono*:</td> <td height="20"><input type="text" name="telefono" id="telefono" class="field" /></td> </tr> <tr> <td height="20" class="colorchange2">E-mail*:</td> <td height="20"><input type="text" name="email" id="email" class="field" /></td> </tr> <tr> <td valign="top" class="colorchange2">Messaggio*:</td> <td><textarea name="messaggio" id="messaggio" class="message"></textarea> <div style="margin-top:25px;"> <!-- <input type="reset" name="image" value="" style="background:url(images/contacts-reset.jpg); border:none; width:108px; height:25px;" /> --> <input type="image" src="http://forum.it.altervista.org/images/contacts-reset.jpg" onClick="reset()"> <input type="image" src="http://forum.it.altervista.org/images/contacts-send.jpg" onClick="Modulo()"> <!-- <input type="submit" name="image" value="" style="background:url(images/contacts-send.jpg); border:none; width:108px; height:25px;" /> --> </div> </td> </tr> </table> </form> <!-- Fine FORM invio dati --> <!-- INIZIO JAVASCRIPT --> <script language="javascript"> function Modulo() { // Variabili associate ai campi del modulo var nominativo = document.modulo.nominativo.value; var societa = document.modulo.societa.value; var telefono = document.modulo.telefono.value; var email = document.modulo.email.value; var messaggio = document.modulo.value; // Espressione regolare dell'email var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/; //Effettua il controllo sul campo NOMINATIVO if ((nominativo == "") || (nominativo == "undefined")) { alert("Il campo Nominativo è obbligatorio."); document.modulo.nominativo.focus(); return false; } //Effettua il controllo sul campo TELEFONO else if ((isNaN(telefono)) || (telefono == "") || (telefono == "undefined")) { alert("Il campo Telefono è numerico ed obbligatorio."); document.modulo.telefono.value = ""; document.modulo.telefono.focus(); return false; } //Effettua il controllo sul campo EMAIL else if (!email_reg_exp.test(email) || (email == "") || (email == "undefined")) { alert("Inserire un indirizzo email valido."); document.modulo.email.select(); return false; } //Effettua il controllo sul campo MESSAGGIO else if (messaggio == "") { alert("Il campo Messaggio è obbligatorio."); document.modulo.messaggio.focus(); return false; } else if (document.modulo.setAttribute("action", "invia.php")); { (document.modulo.reset()); (location.replace("http://cosmo22.altervista.org")); } //INVIA IL MODULO //else { // document.modulo.action = "invia.php"; // document.modulo.submit(action); //} //} } </script> <!-- FINE JAVASCRIPT -->
Ultima modifica di lucatartufari : 14-07-2009 alle ore 12.42.31
Sicuro che la "pagina bianca" non sia invia.php ??
In caso negativo, controlla se il file si chiami proprio così{controlla anche le maiuscole...} (potrebbe esserci qualche errore di battitura...).
Ciao!
regolamento altervista_______________ regolamento forum
Ti posto il codice della pagina invia.php
questo è tutto quello ke ho messo nella pagina invia.php ma ke per caso devo inseire tutti tag dell'html tipo <html><head><body></body></head></html> ?Codice PHP:
<?php
$a = "multiutility@hotmail.it";
$nominativo = $_POST['nominativo'];
$telefono = $_POST['telefono'];
$mail = $_POST['email'];
$oggetto = "Richiesta di contatto";
$messaggio = $_POST['messaggio'];
mail($a, $nominativo, $telefono, $email, $oggetto, $messaggio)
?>
Domanda: ma devo x forza usare il php? non potrei fare che al clic su invia mi si aprisse un alert di riepilogo dei campi, premo ok e viene tutto inviato, con azzeramento del form e redirecti sull'homepage?
Ultima modifica di lucatartufari : 14-07-2009 alle ore 13.10.23
Ci sono un paio di errori, ma temo che la "pagina bianca sia proprio questa".
Prima di tutto $mail != $email
poi $mail deve contenere "From: ".$mail
in definitiva:
Per verificare che sia la pagina giusta, dopo la funzione "mail()", metti un echo ad esempio:Codice PHP:
<?php
$a = "multiutility@hotmail.it";
$nominativo = $_POST['nominativo'];
$telefono = $_POST['telefono'];
$mail = "From: ".$_POST['email'];
$oggetto = "Richiesta di contatto";
$messaggio = $_POST['messaggio'];
mail($a, $nominativo, $telefono, $mail, $oggetto, $messaggio) ;
?>
Ciao!Codice PHP:
echo "<b>sono la pagina che invia la mail!<b>";
EDIT:
Sì, ma non puoi mandare le e-mail con il javascript, perché la mail la deve mandare il server, quindi c'é bisogno di un linguaggio che viene eseguito sul server; appunto il PHP!...Domanda: ma devo x forza usare il php? non potrei fare che al clic su invia mi si aprisse un alert di riepilogo dei campi, premo ok e viene tutto inviato, con azzeramento del form e redirecti sull'homepage?
EDIT 2:
Poi il controllo dei campi li devi fare con il php, non con in javascript!, perché si può evadere molto facilmente il controllo!!
Ultima modifica di alemoppo : 14-07-2009 alle ore 15.53.38
regolamento altervista_______________ regolamento forum
grazie alemoppo!! 6 1 grande!! ;) sei l'unico che mi ha capito...solo una cosa, se puoi editare il tuo post ci manca il punto e virgola ";" alla fine della funzione mail() così il tuo listato può essere preso con copia e incolla semmai a qualcuno dovesse servire!! ;)
Ho inserito tutto quello che mi hai detto e quando clicco su invia mi si apre la pagina che mi dicevi tu con l'echo e mi scrive "sono la pagina che invia la mail!" ma posso evitare che si apra questa pagina? io alla pressione del tasto invia vorrei ci fossero solo 2 casi:
caso1:
invio perfetto: si apre 1 alert e mi dice tipo "grazie per averci contattati"; il form si resetta e si viene redirectati sulla homepage;
caso2:
campi vuoti: si apre il corrispettivo alert di controllo che segnala il campo obbligatorio da compilare e quando clicco sull'OK dell'alert mi trovo il cursore che lampeggia nel campo da compilare. Invece adesso mi si apre sempre la pagina "sono la pagina che invia la mail!" per intenderci...
cosa sto sbagliando?
GRAZIEEEEEEEEEEEEEEEE!!!! :)
Caso 1:
Caso 2:Codice PHP:
<?php
$a = "multiutility@hotmail.it";
$nominativo = $_POST['nominativo'];
$telefono = $_POST['telefono'];
$mail = "From: ".$_POST['email'];
$oggetto = "Richiesta di contatto";
$messaggio = $_POST['messaggio'];
mail($a, $nominativo, $telefono, $mail, $oggetto, $messaggio) ;
header("Location: index.php"); //Questa funzione ti manda alla home e/o alla pagina che vuoi tu (cambia l'index.php in quello che vuoi).
?>
Prova a sostituire questa riga:
ConCodice HTML:else if (document.modulo.setAttribute("action", "invia.php")); {
Codice HTML:else if (document.modulo.setAttribute("action", "invia.php")) {
Ciao!
regolamento altervista_______________ regolamento forum
La chiamata alla funzione modulo la metterei nell'evento onsubmit del form:
A quel punto Modulo() deve restituire false se non vuoi che il modulo venga inviato, true altrimenti.Codice HTML:<form name="modulo" method="post" action="invia.php" onsubmit="return Modulo()">
Inoltre al posto dell'input con type="image" per la chiamata a reset() dovresti usare un'immagine normale, altrimenti fa casino.
Il tag script per Javascript si scrivePuoi usare benissimo document.modulo.action, ma ti sconsiglio di usare lo stesso nome per il form e per la funzione. Ad esempio puoi chiamare il form moduloform. Questo perché la cosa può causare dei mal di testa da paura.Codice:<script type="text/javascript">
6 davvero forte alemoppo!!! ;)
grandi passi avanti ma ancora l'invio nn funziona...
se lascio vuoto il primo campo, nominativo, mi redirecta subito all'homepage e questo non deve accadere; se compilo almeno il nominativo e clicco INVIA mi si apre l'alert TELEFONO che fuziona benissimo, si riapre anche se digito lettere, poi se premo INVIA si apre l'alert EMAIL, sia se sbaglio il formato sia se non compilo poi premo INVIA e compare anche l'alert MESSAGGIO poi è perfetto perché mi redirecta all'homepgae xò non mi invia i dati in email...quindi funzionano molte cose che prima non funzionavano ma ci manca ancora l'invio dei dati, poi è perfetto!!!! ;D ahahah!!!
Ricapitolando, mancano 2 cose ed è perfetto:
1 - il redirect su primo campo vuoto dopo l'alert NOMINATIVO non deve esserci ma dato l'OK all'alert devo restare sulla stessa pagina e il cursore nel campo nominativo;
2 - i dati non vengono inviati all'email prestabilita.
TI STIMO ALEMOPPO TU SI CHE CI CAPISCI DI LINGUAGGIO!!! ;)
PS: posso kiederti una cosa ma nella vita fai il programmatore?
ciao saitfainder, quindi mi dici di sostituire
con questaCodice HTML:<form name="modulo" method="post" action="invia.php">
ma poi devo togliereCodice HTML:<form name="modulo" method="post" action="invia.php" onsubmit="return Modulo()">
e questaCodice HTML:<input type="image" src="images/contacts-reset.jpg" onClick="reset()">
? Ma per questione grafica è brutto il pulsante normale, così invece ho tutto in tinta ed è bellissimo!!! ;)Codice HTML:<input type="image" src="images/contacts-send.jpg" onClick="Modulo()">
cmq adesso mi apre 2 volte gli alert... :'( ch'è successo? e comunque ancora non mi si inviano i dati...!!! :(
Dicevo che mettendo l'onsubmit sul form puoi sostituire questo
con questoCodice HTML:<input type="image" src="images/contacts-send.jpg" onClick="Modulo()">
E che al posto di questoCodice HTML:<input type="image" src="images/contacts-send.jpg">
E' meglio mettere questoCodice HTML:<input type="image" src="images/contacts-reset.jpg" onClick="reset()">
Quali alert? Quelli che dicono che c'è qualcosa che manca sul form? Se è così allora è tutto corretto.Codice HTML:<img src="images/contacts-reset.jpg" onClick="reset()">
Hai ragione!! GRAZIE!!!! ;) funziona solo che quando premo RESET mi si apre l'alert del NOMINATIVO e questo non deve accadere...
Sistemato anche l'invio, ora è perfetto!! Devo solo togliere sto alert NOMINATIVO sul reset e poi il form è perfetto e funzionante, idee SaitFainder? ;)
Ultima modifica di lucatartufari : 14-07-2009 alle ore 22.23.22 Motivo: mi ero sbagliato!! ;P
[OT]
hahaha... che battuta!! Chissà saitfainder quante risate si sarà fatto : "programmo" (per così dire) da appena 2 anni. Ho iniziato con il C, ma poi questo campo è più facile e più bello, quindi... Comunque il C non lo posso abbandonare: sia perché è stato il mio primo linguaggio (secondo me il migliore in assoluto), sia perché io in realtà "sarei" un "elettronico". Quindi il javascript o php non è che siano così utilissimi in elettronica... Al contrario del C.
[/OT]
Comunque in effetti la dichiarazione della funzione "reset()" non c'é. Forse tu volevi fare un<input type='reset'> o non so... comunque a questo punto non dovrai fare altro che scrivere la funzione reset. Una cosa del genere:
Codice HTML:function reset() { document.modulo.nominativo.value=""; ...//scrivi quello che vuoi... Come sai ci puoi mettere di tutto: un alert, ... }
Ultima modifica di alemoppo : 15-07-2009 alle ore 16.27.48
regolamento altervista_______________ regolamento forum
Ciao alemoppo, scusa se tardo a risp ma mi avevano bloccato fino al 22, cioè oggi...so troppo severi qui...!!? ;D ihihi!!!
Ho risolto anche per il reset grazie dell'aiuto però devo mettere appunto l'ultimo dettaglio così poi posso postare tutto il codice perfetto.
Ti spiego: se premo il tasto RESET mi resett il form però mi compare l'ALERT del NOMINATIVO da inserire, come faccio a non farlo comparire? Cioè una volta resettato, il form deve essere pronto come fossi appena arrivato nella pagina.
Che mi consigli?
GRAZIE! ;)
Ultima modifica di lucatartufari : 22-07-2009 alle ore 10.25.49
Se vuoi che il form venga inviato, dovresti modificare questo:
InCodice HTML:<input type="image" src="images/contacts-send.jpg" />
Codice HTML:<input type="image" src="images/contacts-send.jpg" onclick="document.modulo.submit()" />
ciao nokiagames, all'inizio ce lo avevo così, poi mi è stato suggerito di mettere l'onclick direttamente nella dichiarazione del form, cmq ora provo e poi ti dico!! ;)
alemoppo posto il codice del form e il javascript:
GRAZIE ragazzi!! ;)Codice HTML:<!-- Inizio FORM invio dati --> <form name="modulo" method="post" action="invia.php" onsubmit="return Modulo()"> <div class="tab2"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="22%" height="20" class="colorchange2">Nominativo*:</td> <td width="78%" height="20"><input type="text" name="nominativo" id="nominativo" class="field"/></td> </tr> <tr> <td height="20" class="colorchange2">Società:</td> <td height="20"><input type="text" name="societa" id="societa" class="field" /></td> </tr> <tr> <td width="22%" height="20" class="colorchange2">Indirizzo*:</td> <td width="78%" height="20"><input type="text" name="indirizzo" id="indirizzo" class="field"/></td> </tr> <tr> <td height="20" class="colorchange2">Telefono*:</td> <td height="20"><input type="text" name="telefono" id="telefono" class="field" /></td> </tr> <tr> <td height="20" class="colorchange2">E-mail*:</td> <td height="20"><input type="text" name="email" id="email" class="field" /></td> </tr> <tr> <td valign="top" class="colorchange2">Messaggio*:</td> <td><textarea name="messaggio" id="messaggio" class="message"></textarea> <div style="margin-top:25px;"> <input type="image" src="http://forum.it.altervista.org/images/contacts-reset.jpg" onClick="Reset()"/> <input type="image" src="http://forum.it.altervista.org/images/contacts-send.jpg" /> </div> </td> </tr> </table></div> </form> <!-- Fine FORM invio dati --> <!-- INIZIO JAVASCRIPT --> <script type="text/javascript"> function Modulo() { // Variabili associate ai campi del modulo var nominativo = document.modulo.nominativo.value; var societa = document.modulo.societa.value; var indirizzo = document.modulo.indirizzo.value; var telefono = document.modulo.telefono.value; var email = document.modulo.email.value; var messaggio = document.modulo.messaggio.value; // Espressione regolare dell'email var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/; //Effettua il controllo sul campo NOMINATIVO if ((nominativo == "") || (nominativo == "undefined")) { alert("Il campo Nominativo è obbligatorio."); document.modulo.nominativo.focus(); return false; } //Effettua il controllo sul campo INDIRIZZO if ((indirizzo == "") || (indirizzo == "undefined")) { alert("Il campo Indirizzo è obbligatorio."); document.modulo.indirizzo.focus(); return false; } //Effettua il controllo sul campo TELEFONO else if ((isNaN(telefono)) || (telefono == "") || (telefono == "undefined")) { alert("Il campo Telefono è numerico ed obbligatorio."); document.modulo.telefono.value = ""; document.modulo.telefono.focus(); return false; } //Effettua il controllo sul campo EMAIL else if (!email_reg_exp.test(email) || (email == "") || (email == "undefined")) { alert("Inserire un indirizzo email valido."); //document.modulo.email.select(); document.modulo.email.focus(); return false; } //Effettua il controllo sul campo MESSAGGIO else if (messaggio == "") { alert("Il campo Messaggio è obbligatorio."); document.modulo.messaggio.focus(); return false; } else if (alert("Grazie per averci contattato! Un Consulente Multisolution la ricontatterà appena possibile.")) (document.modulo.setAttribute("action", "invia.php")) } function Reset() { document.modulo.nominativo.value=""; document.modulo.societa.value=""; document.modulo.indirizzo.value=""; document.modulo.telefono.value=""; document.modulo.email.value=""; document.modulo.messaggio.value=""; } </script> <!-- FINE JAVASCRIPT -->
Ultima modifica di lucatartufari : 23-07-2009 alle ore 10.27.05
Al form hai messo l'evento on submit, ma siccome usi un input image per l'invio e se ci clicchi il form non viene trasmesso. Hai bisogno di fare come ho scritto sopra.
Non c'è bisogno. E' stato un mio errore, pensavo che input image non inviasse il form.
Quindi non c'è bisogno di fare come ho scritto io. Scusami
Ultima modifica di nokiagames : 23-07-2009 alle ore 14.31.50
Ho capito
Sostituisci questo:
inCodice HTML:<input type="image" src="http://forum.it.altervista.org/images/contacts-reset.jpg" onClick="Reset()"/>
E se all'invio del form, non vuoi passarti le dimensioni dell'immagine x e y (larghezza ed altezza), sostiutisci:Codice HTML:<img src="http://forum.it.altervista.org/images/contacts-reset.jpg" alt="reset" onClick="Reset()"/>
In:Codice HTML:<input type="image" src="http://forum.it.altervista.org/images/contacts-send.jpg" />
Codice HTML:<img src="http://forum.it.altervista.org/images/contacts-send.jpg" alt="invia" onClick="document.modulo.submit()" />
Ultima modifica di nokiagames : 23-07-2009 alle ore 19.37.03
grazie caro ho provato ma non funziona...mi spariscono i pulsanti!! :(
è proprio rognoso quell'ALERT dopo il RESET...!!!
Perchè quelle immagini non esistono, prova ad aprirle direttamente
http://forum.it.altervista.org/images/contacts-send.jpg
http://forum.it.altervista.org/image...acts-reset.jpg