class_form.php
Código PHP:
Ver original
<?php /****************************************************************************** * html_form * * * * Version: 1.1 * * Date: 2011-10-21 * * Author: Jose Quintero * *******************************************************************************/ class html_form{ var $name; var $action; var $method; var $enctype; var $onsubmit; var $form; var $input; var $type; var $label; var $value; var $oForm; var $cForm; var $radio; var $checkbox; var $select; var $texto; var $fieldset; var $legend; var $widht; function openform($name='form1', $method='post', $action='#', $enctype='', $onsubmit=''){ $this->action = $action; $this->method = $method; $this->name = $name; $this->enctype = $enctype; $this->onsubmit = $onsubmit; $this->oform = "<form name='".$this->name."' action='".$this->action."' method='".$this->method."' enctype='".$this->enctype."' onsubmit='".$this->onsubmit."'>"; return $this->oform; } function addInput($type, $name, $label='',$value=''){ $this->type = $type; $this->name = $name; $this->label= $label; $this->value = $value; if($this->type == "submit" || $this->type=="reset"){ $this->input = "<label></label>"; } else{ $this->input= "<label>".$this->label."</label><br>"; } $this->input .= "<input type='".$this->type."' name='".$this->name."' value='".$this->value."' id='".$this->name."'/>"; return $this->input; } function addcheckradio($type,$name,$values,$selected=0){ $this->value = $values; $this->selected = $selected; $this->type = $type; if ($this->type=="checkbox"){ $this->name = $name."[]"; } else{ $this->name = $name; } $c=1; if ($c==$this->selected){ $this->check = " checked/>"; } else{ $this->check = " />"; } $this->radio .= "<label>".$this->value[$val]."</label><input type='".$this->type."' name='".$this->name."' value='".$val."'".$this->check."<br>"; $c++; } return $this->radio; } function addTextarea($name, $cols=20, $rows=5, $label='',$value=''){ $this->name=$name; $this->row= $rows; $this->col= $cols; $this->value = $value; $this->label = $label; $this->textarea = "<label>".$this->label."</label><br><textarea name='".$this->name."' cols='".$this->col."' rows='".$this->row."'>".$this->value."</textarea>"; return $this->textarea; } function addSelect($name, $values, $label='', $multiple=0){ $this->values=$values; $this->name=$name; $this->label=$label; if($multiple==1){ $this->select = "<label>".$this->label."</label><br><select name='".$this->name."[]' multiple='multiple'>"; } else{ $this->select = "<label>".$this->label."</label><br><select name='".$this->name."'>"; } { $this->select .= "<option value='".$values."'>".$this->values[$values]."</option>"; } $this->select .= "</select>"; return $this->select; } function openfieldset($texto,$width='300'){ $this->legend=$texto; $this->width=$width; $this->fieldset="<fieldset style='width:".$this->width."px;'><legend>".$this->legend."</legend>"; return $this->fieldset; } function closefieldset(){ $this->fieldset="</fieldset>"; return $this->fieldset; } function closeform(){ $this->cform = "</form>"; return $this->cform; } } ?>
aqui te muestro un ejemplo explicado de como se usa.
Código PHP:
Ver original
<?php /*incluimos el archivo de la clase y creamos la instancia para generar el formulario*/ include("class_form.php"); $frm = new html_form(); /* Iniciar el formulario openform(nombre, metodo, accion, enctype, onsubmit) nombre = nombre del formulario metodo = get o post (por defecto es post) accion = el script que se ejecutara cuando se envie el formulario enctype = determina como sera codificada la data(application/x-www-form-urlencoded, multipart/form-data, text/plain) onsubmit = ejecutara el script de javascript para validar el formulario. */ $formulario = $frm->openform("form1","post","procesa_datos.php","multipart/form-data"); /*openfieldset(leyenda, tamaños) inicia el fieldset leyenda = texto que aparecera tamaño = ancho del fieldset */ $formulario .= $frm->openfieldset("Cajas de Texto",300); /* añadir input (texto, password, file, submit, reset) addInput(tipo, nombre, etiqueta, valor) tipo = puede ser text, password, submit, reset nombre = nombre de la caja de texto sera usado tambien como id etiqueta = etiqueta a mostrar en los (en los submit y reset no se usa) valor = si mostrara algun valor por defecto(en el caso de submit y reset es el texto que mostrara el boton) */ $formulario .= $frm->addInput("text","nombre","Nombres: ")."<br>"; $formulario .= $frm->addInput("text","apellido","Apellidos: ")."<br>"; $formulario .= $frm->addInput("password","password","Contraseña: ")."<br>"; $formulario .= $frm->addInput("hidden","opcion","",1); $formulario .= $frm->addInput("file","foto","Foto: "); /* closefieldset cierra el fieldset */ $formulario .= $frm->closefieldset(); /* añadir radio boton addcheckradio(tipo,nombre, valores, seleccionado) tipo = puede ser checkbox o radio. nombre = nombre del boton valores = array(valor1=>etiqueta1,valor2=>etiqueta2); el array puede ser numerico o de texto. seleccionado = cual sera seleccionado por defecto ninguno esta marcado */ $formulario .= $frm->openfieldset("Radio Botones",300); $formulario .= $frm->addcheckradio("radio","sexo",$values,1); $formulario .= $frm->closefieldset(); $formulario .= $frm->openfieldset("Radio Botones",300); $formulario .= $frm->addcheckradio("radio","encuesta",$values,1); $formulario .= $frm->closefieldset(); 6=>"Atletismo",7=>"Musica",8=>"Internet"); $formulario .= $frm->openfieldset("Checkbox",300); $formulario .= $frm->addcheckradio("checkbox","hobbies",$values,1); $formulario .= $frm->closefieldset(); /* añadir area de textp addTextarea(nombre,columnas, filas, etiqueta,valor) nombre = nombre de la caja de textp columnas y filas = tamaño de la caja de texto(por defecto es 20 cols, 5 rows Etiqueta = valor que mostrara el label de la caja de texto valor = si el texto mostrara algo por defecto */ $formulario .= $frm->openfieldset("Area de Texto",300); $formulario .= $frm->addTextarea("direccion",20,5,"Direccion")."<br>"; $formulario .= $frm->closefieldset(); /* añadir select option addSelect(nombre,valores, etiqueta,multiple) nombre = nombre del select valores = array tipo (valor1=>texto1,valor2=>texto2) Etiqueta = valor que mostrara el label del select multiple = 1 para activar multiple, por defecto es desactivado. */ $formulario .= $frm->openfieldset("Select Options",300); $formulario .= $frm->addSelect("paises",$valores, "Paises: ")."<br>"; $formulario .= $frm->addSelect("colores",$valores, "Colores: ",1); $formulario .= $frm->closefieldset(); $formulario .= $frm->addInput("submit","enviar","","Enviar"); $formulario .= $frm->addInput("reset","reset","","Reset"); /* cierra el formulario closeform() */ $formulario .= $frm->closeform(); echo $formulario; ?>
y este es un ejemplo de que recoge bien los datos enviados
Código PHP:
Ver original
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento sin título</title> </head> <body> <?php echo "Nombre: ".$_POST[nombre]."<br>"; echo "Apellido: ".$_POST[apellido]."<br>"; echo "Opcion: ".$_POST[opcion]."<br>"; echo "Sexo: ".$_POST[sexo]."<br>"; echo "Opinion del Sitio: ".$_POST[encuesta]."<br>"; $hobbie = $_POST[hobbies]; foreach($hobbie as $val){ echo "Hobbie: ".$val."<br>"; } echo "Direccion: ".$_POST[direccion]."<br>"; echo "Paises: ".$_POST[paises]."<br>"; $colores= $_POST[colores]; foreach($colores as $val){ echo "Colores: ".$val."<br>"; } ?> </body> </html>
cualquier cosa me escriben por aqui o por el twitter @pctec21 gracias