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

    Problema form jQuery-Ajax

    Ciao a tutti, avrei bisogno di un piccolo/grande aiuto, perchè non riesco a capire dove sbaglio. In pratica ho fatto un semplice form per inviare delle mail tramite php. Per renderlo un po' più accattivante ho aggiunto alcuni effetti tramite jquery. Nello specifico ho utilizzato ajax e il formato Json per dialogare con lo script php. Il problema risiede nella semplice dissolvenza del form per la durata della risposta. In effetti quando avviene l'invio dei dati il form si dissolve mostrando il messaggio di risposta ma non ricompare più. Questo mi andrebbe anche bene se non dovesi tenere conto degli eventuali errori di compilazione del form stesso. Percio' a me serve che si dissolva per il tempo di "elaborazione" dei dati e ricompaia con il messaggio di risposta.
    Qualcuno sarebbe cosi' gentile da darmi un suggerimento sul da farsi? Grazie mille!
    Di seguito il codice:
    codice:
    <form  name="form" id="contactform">
    
    	
    
    
    
    		<label for="name"><?php echo $lang['NAMEFORM']; ?></label>
    
    		<input class="boxform" type="text" name="name">
    
    	</p>
    
    					
    
    	
    
    
    
    		<label for="email"><?php echo $lang['EMAILFORM']; ?></label>
    
    		<input class="boxform" type="text" name="email">
    
    	</p>
    
    					
    
    	
    
    
    
    		<label for="message"><?php echo $lang['MESSFORM']; ?></label>
    
    		<textarea  class="boxform" name="message" maxlength="1000" cols="10" rows="6"></textarea>
    
    	</p>
    
    					
    
    		<input type="submit" class="button" name="submit" value="<?php echo $lang['send']; ?>">
    
    	
    
    	</form>
    
    
    
    	 [img]images/loading.gif[/img]
    
    
    
    	<div id="result"></div>
    e jquery

    codice:
    jQuery(document).ready(function(){  
       
         jQuery("#contactform").submit(function(){  
      
             jQuery.ajax({  
                 type: "POST",  
                 url: "email.php",  
                 data: jQuery("#contactform").serialize(),  
                 dataType: "json",  
       
                 success: function(msg){ 
    		jQuery("#contactform").hide();
     		jQuery("#load").fadeIn(); 
                    jQuery("#result").removeClass('error');  
                    jQuery("#result").addClass('success');  
                    jQuery("#result").addClass(msg.status);  
                    jQuery("#result").html(msg.message);  
                 },  
                 error: function(){  
                    jQuery("#result").removeClass('success');  
                    jQuery("#result").addClass('error');  
                    jQuery("#result").html("Errore invio form. Riprova");  
                 }  
             });  
        
            return false;  
      
        });  
       
    });

    e php:

    codice:
    <?php
    
    
    
    
    
    include ('lang.php');
    
    
    
    // Get data 
    
    $name = $_POST['name'];
    
    $email = $_POST['email'];
    
    $comment = $_POST['message'];
    
    
    
    
    	// Test variables
    
    	if ((isset($_POST['name']) && !empty($_POST['name'])) && 
    
    	(isset($_POST['email']) && !empty($_POST['email'])) && 
    
    	(isset($_POST['message']) && !empty($_POST['message']))) {
    
     
    
        		$email_exp = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i"; 
    
     		if(preg_match($email_exp,$email)) {
    
    
    
    		// Send Email
    
    		$to = ' ';
    
    
    
    		$subject = '  ';	
    
    
    
    		$message = " $comment ";
    
    
    
    		$headers = "From: " . $email . "\r\n";
    
    
    
    		'Reply-To: noreply@ localhost' . "\r\n" .
    
    
    
    		'X-Mailer: PHP/' . phpversion();
    
    
    
    		mail($to, $subject, $message, $headers);
    		
    		$lang['status'] = 'success';
    		$lang['message'] = $lang['sendmail'];
    		$lang['message'];
    
    
    
      		} else {
    
    
    
    		$lang['status'] = 'error';
    		$lang['message'] = $lang['errormail'];
    
    		$lang['message'];
    
    
    		}
    
    
    
    	} else {
    
    		
    
    	 $lang['error'] = 'error';
    	 $lang['message'] = $lang['errorform'];
    
    	 $lang['message'];
    	
    
    	}
    
    
    
    echo json_encode($lang);
    
    
    
    ?>

  2. #2
    Che bello , sono riuscito a risolvere. Molto probabilmente era una sciocchezza il problema che avevo, pero' per uno che sta imparando venirne a capo da solo..eh sono soddisfazioni.
    codice:
    jQuery(document).ready(function(){  
    	jQuery("#contactform").submit(function(){ 
    		jQuery(this).fadeOut();
    		jQuery("#load").fadeIn();
    
      		jQuery.ajax({  
    			type: "POST",
    		    	url: "email.php",  
    		    	data: jQuery("#contactform").serialize(),  
    		    	dataType: "json",
    		    	success: function(msg){
     				if (msg.status == 'success') {
    					jQuery("#load").hide();
                				jQuery("#result").removeClass('error');  
    					jQuery("#result").addClass('success');  
    					jQuery("#result").addClass(msg.status);  
    					jQuery("#result").html(msg.message); 
            			} else {
                				jQuery("#load").hide();
    					jQuery("#contactform").fadeIn();
                				jQuery("#result").removeClass('success');  
    					jQuery("#result").addClass('error');  
    					jQuery("#result").addClass(msg.status);  
    					jQuery("#result").html(msg.message); 
            			}	
    		     	},  
    		     	error: function(){  
    				jQuery("#result").removeClass('success');  
    				jQuery("#result").addClass('error');  
    				jQuery("#result").html("There was an error submitting the form. Please try again.");  
    			}  
            	});  
    	return false;  
    	});  	
    });
    Sono sicuro che il codice che ho scritto non è perfetto, percio' se qualcuno avesse qualche suggerimento da darmi per migliorar(e)armi gliene sarei grato.
    Grazie!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.