Salve, con l'aiuto di Borgo Italia sono riuscito a creare un form in php come volevo, l'inghippo sta nel fatto che quando invio il form mi ricarica la pagina quindi dovrei fare in modo che quando ricarica la pagina mi esegua una funzione che ho già creato e che uso già...in pratica invio il form, si ricarica la pagina e invece di restare su, deve andare all'ancora dove si trova il form...ma di preciso non so come inserire la funzione nel form php...qualcuno mi da un mano ?
questo il form che posto nel caso possa servire a qualcuno
questa invece la funzione che deve fare una volta che ha inviato il form
Ho provato a richiamarla sul pulsante submit ma non mi funziona
questo il form che posto nel caso possa servire a qualcuno
PHP:
<?php
if(isset($_POST['invia'])){//verifico che sia stato premuto il submit
//metto un messaggio di errore a vuoto
$ok_ko="";
//leggo i vari input e li verifico
$nome=trim(strip_tags($_POST['nome']));//con stip tag tolgo i tag html
$cognome=trim(strip_tags($_POST['cognome']));
$mittente=trim(strip_tags($_POST['mittente']));
$oggetto=trim(strip_tags($_POST['oggetto']));
//nel messaggio trasformo gli eventuali \n in br e non li tolgo, gli altri li elimino
$messaggio=trim(strip_tags(nl2br($_POST['messaggio']),"<br> <br />"));
$allegato_name=$_FILES['allegato']['name'];
//inizio i controlli
if($nome == ""){
$ok_ko.="il nome é obbligatorio<br>";
}
if($cognome == ""){
$ok_ko.="il cognome é obbligatorio<br>";
}
if(!filter_var($mittente, FILTER_VALIDATE_EMAIL)){
$ok_ko.="l'indirizzo email é obbligatorio<br>o indirizzo non valido<br>";
}
if($messaggio =="" || strlen($messaggio)<10){
$ok_ko.="non hai scritto il messaggio<br>o troppo corto, minimo 10 caratteri<br>";
}
$ammessi=array('doc', 'docx', 'pdf', 'txt');//puoi aggiungerne o elimininarne
$estensione=pathinfo($allegato_name, PATHINFO_EXTENSION);//ricavo l'estenzione del file
if(!in_array($estensione,$ammessi)){//verifico se l'estenzione è tra le ammesse
//non c'è quindi vuoto tutto
$allegato_name ="";
$allegato_si_no="non c'é allegato";
}else{
//e lo carico (qui se non caricato metto solamente come se fosse vuoto o errato)
if(move_uploaded_file($_FILES['allegato']['tmp_name'], $_FILES['allegato']['name'])){
$allegato_si_no="allegato: ".basename($allegato_name);
}else{
$allegato_name ="";
$allegato_si_no="non c'é allegato";
}
}
//a questo punto verifico il messaggio di errore
//se è rimasto vuoto non sono stati fatti errori quindi posso iniziare a spedire
if($ok_ko==""){
$destinatario="[email protected]"; //qui le tua email
require_once "phpmailler/class.phpmailer.php";//richiamo la classe (verifica il percorso)
// e comincio ad istanziarla
$Emailmessaggio = new PHPmailer();
$Emailmessaggio->SetLanguage('it','language/'); //messo italiano, ma la scelta è vasta
$Emailmessaggio->IsHTML(true); // invio l'email in formato HTML
$Emailmessaggio->AddAddress($destinatario);
$Emailmessaggio->FromName= "tuo_sito";//da dove ti arriva il messaggio, cioè dal form del tuo sito
$Emailmessaggio->AddReplyTo($mittente,"");//a chi rispondere es. con il rispondi di outlook
$Emailmessaggio->Subject=$oggetto;//oggetto dell'email
//preparo il testo che ti verrà inviato
$testo="<hr>";
$testo.="Nome: $nome<br>";
$testo.="Cognome: $cognome<br>";
$testo.="email: <a href=\"mailto:$mittente\">$mittente</a><br>";
$testo.= "il ".date("d.m.Y H:i:s")."<hr>";
$testo.="Messaggio: $messaggio<hr>Allegato: $allegato_si_no";
$Emailmessaggio->Body=$testo;
//preparo l'allegato se c'è o se non l'ho eliminato
if($allegato_name !=""){
$Emailmessaggio->AddAttachment($allegato_name);
}
//ora dovrebbe essere tutto pronto per l'invio
if(!$Emailmessaggio->Send()){ //errore di trasmissione
$ok_ko="c'é stato un errore di trasmissione, riprova più tardi<br>";
}else{ //invio avvenuto
$ok_ko="grazie di averci contattato, sarai richiamato al più presto<br>";
}
}
//quindi mostro il messaggio di errore o di invio (a te sistemarlo graficamente)
echo $ok_ko;
//e ritorno, dopo 4 secondi per dare il tempo di leggere il messaggio al form pulito
echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
?>
<form action="<?php htmlspecialchars($_SERVER['PHP_SELF']);?>" method="POST" enctype="multipart/form-data">
<span id="sprytextfield1">
<input type="text" name="nome" class="nome" />
<span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span></span>
<span id="sprytextfield2">
<input type="text" name="cognome" class="cognome"/>
<span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span></span>
<span id="sprytextfield3">
<input type="text" name="mittente" value="" class="email"/>
<span class="textfieldRequiredMsg">È obbligatorio specificare un valore.</span><span class="textfieldInvalidFormatMsg">Formato non valido.</span></span>
<!-- <input type="text" name="oggetto" value="" />-->
<span id="spryselect1">
<select name="oggetto" id="subject" style="color:#797b6e; margin-bottom:30px; width:340px; height:30px;" tabindex="4">
<option value="" selected="selected">Choose</option>
<option value="Question">Question</option>
<option value="Business">Business</option>
<option value="Work with us">Work with us</option>
</select>
<span class="selectRequiredMsg"></span></span>
<span id="sprytextarea1">
<textarea cols="40" rows="4" name="messaggio"></textarea>
<span class="textareaRequiredMsg">È obbligatorio specificare un valore.</span></span>
<input type="text" value="doc - docx - txt - pdf" id="fileName" class="file_input_textbox" readonly="readonly" style="width:225px; height:29px;"/>
<div class="file_input_div">
<input type="button" value="Select files" class="file_input_button" />
<input type="file" name="allegato" class="file_input_hidden" onchange="javascript: document.getElementById('fileName').value = this.value" />
</div>
<div style="font-size:10px; margin-top:30px; margin-bottom:30px;float:left;">
<input class="acconsento" name="acconsento" type="checkbox" value="acconsento al trattamento dei miei dati personali" checked="checked">
I agree to the treatment of my personal data</div>
<div style="float:right;">
<input type="reset" value="Reset" id="submit" tabindex="7" class="pulsanteinv">
<input type="submit" name ="invia" value="Sign up" id="submit" tabindex="8" class="pulsanteinv"></div>
</form>
<!--qui ci andrebbe un link per uscire dalla pagina -->
<?php
}
questa invece la funzione che deve fare una volta che ha inviato il form
PHP:
$('html,body,,main,header,griglia').animate({ scrollTop: $("#contact").offset().top },'slow');
Ho provato a richiamarla sul pulsante submit ma non mi funziona
Ultima modifica: