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_sent= form_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()