WF AQ

Knowledge base

Funzione Jquery generica per validazione form in ajax

HTML:

…..

CSS:

#form_success, #form_error{
 display: none;
 }

Javascript:

$("#form_insert_operatore").submit(function(e){
		e.preventDefault();
		$('#form_success').css('display','none');
		$('#form_error').css('display','none');
		$(".form-group").removeClass('has-error');
		$('#ajaxmodalspinner').modal('show');
		$.ajax({
			'url' : $(this).attr('action'),
			'type' : $(this).attr('method'),
			'dataType' : 'json',
			data: $(this).serialize(),
			'success' : function(data){
				$('#ajaxmodalspinner').modal('hide');
				if(data.status=='formerror'){
					$.each(data.errors, function( index, value ) {
						$("#f_"+index).addClass('has-error');
						$("[name='"+index+"']").val('');
						$("[name='"+index+"']").attr('placeholder',value);
					});
				}else if (data.status=='queryerror'){
					$('#form_error').css('display','block');
					$('#form_error strong').html('Errore di query. Contattare l\'Amministratore');
				}else{
					$('#form_success').css('display','block');
					$('#form_success strong').html('Utente inserito con successo');
				}
			}
		});
	});

Esempio di Controller:

public function validate_add_client(){
		if (!$this->ion_auth->logged_in())
			redirect('/', 'refresh');
			
		$config = array(
			array(
				'field'   => 'name', 
				'label'   => 'Azienda', 
				'rules'   => 'trim|required|xss_clean'
			),
			array(
				'field'   => 'zone', 
				'label'   => 'Zona', 
				'rules'   => 'trim|required|is_natural_no_zero|xss_clean'
			),
			array(
				'field'   => 'region', 
				'label'   => 'Regione', 
				'rules'   => 'trim|required|xss_clean'
			),
			array(
				'field'   => 'province', 
				'label'   => 'Provincia', 
				'rules'   => 'trim|required|xss_clean'
			),
			array(
				'field'   => 'city', 
				'label'   => 'Città', 
				'rules'   => 'trim|required|xss_clean'
			),
			array(
				'field'   => 'town', 
				'label'   => 'Frazione', 
				'rules'   => 'trim|xss_clean'
			),
			array(
				'field'   => 'cap', 
				'label'   => 'CAP', 
				'rules'   => 'trim|numeric|xss_clean'
			),
			array(
				'field'   => 'address_1', 
				'label'   => 'Indirizzo 1', 
				'rules'   => 'trim|required|xss_clean'
			),
			array(
				'field'   => 'email', 
				'label'   => 'Email', 
				'rules'   => 'trim|valid_email|xss_clean'
			),
			array(
				'field'   => 'pec', 
				'label'   => 'PEC', 
				'rules'   => 'trim|valid_email|xss_clean'
			)
		);
		$this->form_validation->set_rules($config);
		if($this->form_validation->run()){
			if($res=$this->operatori_m->insert($this->input->post(NULL, TRUE))){
				$status='ok';
				$errors=0;
			}else{
				$status='queryerror';
				$errors=0;
			}
		}else{
			$status='formerror';
			$errors=array();
			if(form_error('name'))
				$errors['name']="Il campo non può essere vuoto";
			if(form_error('zone'))
				$errors['zone']="Il campo non è corretto";
			if(form_error('region'))
				$errors['region']="Il campo è richiesto";
			if(form_error('province'))
				$errors['province']="Il campo è richiesto";
			if(form_error('city'))
				$errors['city']="Il campo è richiesto";
			if(form_error('province'))
				$errors['province']="Il campo è richiesto";
			if(form_error('cap'))
				$errors['cap']="Il campo non è corretto";
			if(form_error('address_1'))
				$errors['address_1']="Il campo è richiesto";
			if(form_error('email'))
				$errors['email']="L'indirizzo email non è valido";
			if(form_error('pec'))
				$errors['pec']="L'indirizzo email non è valido";
		}
		
		
		$jsondata = array(
			'status'	=> $status,
			'errors'    => $errors
		);
		print json_encode($jsondata);
	}