Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Non far ricaricare la pagina del form una volta inviato

    Salve una volta costruito questo form ed inserito nella pagina ed inviato il form mi riporta in cima alla pagina e devo nade a scrollare per la pagina per ritornare alla sezione dei contatti...mi sapete aiutare ? o a non far ritornare la pagina in alto oppure ad inserire nel php del form una funzione javascript che già utilizzo per andare alla sezione contact ?

    Form
    Codice 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']),"
     
    "
    )); 
        
    $allegato_name=$_FILES['allegato']['name']; 
        
    //inizio i controlli 
        
    if($nome == ""){ 
            
    $ok_ko.="il nome &eacute; obbligatorio
    "

        } 
        if(
    $cognome == ""){ 
            
    $ok_ko.="il cognome &eacute; obbligatorio
    "

        } 
        if(!
    filter_var($mittenteFILTER_VALIDATE_EMAIL)){ 
            
    $ok_ko.="l'indirizzo email &eacute; obbligatorio
    o indirizzo non valido
    "

        } 
        if(
    $messaggio =="" || strlen($messaggio)<10){ 
            
    $ok_ko.="non hai scritto il messaggio
    o troppo corto, minimo 10 caratteri
    "

        } 
        
    $ammessi=array('doc''docx''pdf''txt');//puoi aggiungerne o elimininarne 
        
    $estensione=pathinfo($allegato_namePATHINFO_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'&eacute; 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'&eacute; 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@personale.com"//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
    "
    ;
            
    $testo.="Cognome: $cognome
    "
    ;
            
    $testo.="email: <a href=\"mailto:$mittente\">$mittente</a>
    "
    ;
            
    $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'&eacute; stato un errore di trasmissione, riprova pi&ugrave; tardi
    "
    ;
            }else{ 
    //invio avvenuto 
                  
    $ok_ko="grazie di averci contattato, sarai richiamato al pi&ugrave; presto
    "
    ;
            } 
        } 
        
    //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>
       
       
         
        
         
         
         <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> 
     
    <?php 
    }
    stringa jqery che ho già creato per andare alla sezione
    Codice PHP:
    $('html,body,,main,header,griglia').animate({ scrollTop: $("#contact").offset().top },'slow'); 

  2. #2
    sto provando altre strade ma non riesco. Qualcuno potrebbe darmi una mano ?

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Non ti serve PHP, basta che alla riga prima del form ci metti un'ancora

    <a name='#form'></a>

    poi alla fine dello script che riceve i dati del form ci metti un redirect al link

    http://www.iltuosito.it/#form

  4. #4
    è che non conoscendo il php non so dove andare ad inserire il li link di collegamento all'amcora

  5. #5
    Ho trovato una soluzione...anche se non è quello che volevo proprio ma posso farmela andare bene. Invece di far comparire il messaggio di risposta nel form faccio comparire un popup in questo modo

    Codice PHP:
     //quindi mostro il messaggio di errore o di invio (a te sistemarlo graficamente) 
        
    echo "<script>window.open('$ok_ko', 'upload',
    'height=219,width=395,left=400,top=300,toolbar=no,scrollbars=no');</script>"
    ;
        
    //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{ 
    quando si apre mi da il messaggio di risposta ma è un po bruttino esteticamente xkè non legge i caratteri speciali ed esce anche pagina non trovata ed altre informazioni...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.