Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/07/2011, 12:51
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 8 meses
Puntos: 292
[APORTE] form_helper mejorado con JS

Buenas... algunos conoceran los formuarios de JOT FORM...pues son excelentes! Permiten...hacer chequeos como si un campo es requerio o si un e-mail es valido.



Les presento una EXTENSION del FORM HELPER de CI que permite facilmente crear un formulario que se sirve de estas caracteristicas.

MY_form_helper.php en helpers

Código PHP:
<?php    
/*  
    Helper para formularios JFORM (incluyen llamadas JS)
     
    JS desarrollado por JOT FORM     
    JS alojado en http://www.2shared.com/document/sPHAvxc1/form.html

    Debe especificar la ruta o PATH al JS en la constante PATH_JS
*/

    
function jform_open($url,$title=null) { 
      
$js_open '<script src="'.PATH_JS.'form.js" type="text/javascript"></script>';
      
$style   '<style>input { width:320px;}
        input.boton {width:75px;height:25px;}
       </style>'
;      
      if (
$title!=null){
         
$heading heading ($title,2);
      }     
      return 
$style.$js_open.$heading.form_open('cpanel/account/validate','name="q_form_72680528871"');
    }  
      
    function 
jform_close($html='',$hidden_sent=true) { 
    
      if (
$hidden_sent){
        
$hidden_sentform_hidden('sent''sent');
      }else{
        
$hidden_sent='';
      }    
    
      return 
$hidden_sent.'</form>'.$html.'<script type="text/javascript">validate("q_form_72680528871");</script>';      
    }

    
    
/*
      required = Email | Required        
    */
    
function jform_input($name,$label='',$type='text',$value='',$required='Required'){ 
    
    
$onblur '';    
    
    if (
$label!=''){
      if (
$required!=false){
        
$span   '<span class="required">*</span>';
        
$onblur "onblur=\"validate(this,'$required')\"";
      }else{
        
$span '';        
      }
      
$label"<label>$label $span</label><br/>";
    }  

    
// No remover los <p></p> o el JS deja de funcionar!
    
return "<p>$label
<input type=\"$type\" size=\"50\" name=\"$name\" $onblur value=\"$value\" /></p>"
;    
    }    

       function 
form_sent(){
      
$CI = &get_instance();
      return 
$CI->input->post('sent')=='sent';
    }
y ahora un ejemplo de uso:

Código PHP:
<?= jform_open('cpanel/account/validate','<span>Cuenta</span> usuario'); ?>

<?= jform_input('fullname','Su nombre:','text','','Required'); ?>    

<?= jform_input('email','E-mail:','text','','Email'); ?>  

<?= jform_input('paypal_email','Paypal:','text',(form_sent() ? $this->input->post('paypal_email') : $userdata[0]->paypal_email,'Email'); ?> 
        
<?= jform_input('country','Pais:','text',(form_sent() ? $this->input->post('country') : $userdata[0]->country); ?>    
    

    
   <p class="clear"></p>
<?= form_button ('submit','Actualizar'); ?>
   
<?= jform_close(); ?>
Los CSS que incluyo son los que mejor se adaptan a ese JavaScript!

Su uso es simple: jform_open(), jform_input() y jform_close() se suman a las funciones que provee URL HELPER como form_button()

Cita:
jform_input('username','Nombre de usuario:' ,'text','valor por defecto');
El ultimo parametro puede omitirse y el campo se considera 'requerido' o especificarse como 'Email'

PD: el HELPER automaticamente agrega un campo oculto de verificacion de formulario enviado...y ofrece la funcion de chequeo form_sent()
__________________
Salu2!

Última edición por Italico76; 16/07/2011 a las 15:19