Foros del Web » Programando para Internet » PHP »

Clase quickForm para hacer formularios simples

Estas en el tema de Clase quickForm para hacer formularios simples en el foro de PHP en Foros del Web. Hola a todos, hice una clase simple llamada quickForm, lo que hace es generar un formulario básico donde el usuario ingresa datos y al presionar ...
  #1 (permalink)  
Antiguo 05/05/2011, 16:01
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Exclamación Clase quickForm para hacer formularios simples

Hola a todos, hice una clase simple llamada quickForm, lo que hace es generar un formulario básico donde el usuario ingresa datos y al presionar el botón estos datos se guardan en la base de datos deseada.

Mi idea de compartir esto es mejorarla con mas opciones, la mayoría aqui sabe mas de clases y objetos que yo, así que podríamos hacerla mejor, creo que esta podría ser una herramienta útil para muchos.

Esta es la clase con un ejemplo al final del código (por ahora no guarda en la BD):
Código PHP:
<?php
class quickForm{
    var 
$query="";
    var 
$fields="";
    var 
$values="";
    function 
quickForm($name,$table){
        if(!
$_POST['sent'])echo "<form name'$name' id='$name' method='post' action=''>";
        
$this->query="INSERT INTO $table ";
        
$this->fields="";
        
$this->values="";
    }
    function 
textForm($name,$field,$value){
        if(
$_POST[$name]){ $value=$_POST[$name];
            if(
$this->fields)$this->fields.=",";$this->fields.=$field;
            if(
$this->values)$this->values.=",";$this->values.="'$value'";
        }
        if(!
$_POST['sent'])echo "<input name='$name' type='text' id='$name' value='$value'>";
    }
    function 
passwordForm($name,$field,$value){
        if(
$_POST[$name]){ $value=$_POST[$name];
            if(
$this->fields)$this->fields.=",";$this->fields.=$field;
            if(
$this->values)$this->values.=",";$this->values.="'$value'";
        }
        if(!
$_POST['sent'])echo "<input name='$name' type='password' id='$name' value='$value'>";
    }
    function 
hiddenForm($name,$field,$value){
        if(
$_POST[$name]){ $value=$_POST[$name];
            if(
$this->fields)$this->fields.=",";$this->fields.=$field;
            if(
$this->values)$this->values.=",";$this->values.="'$value'";
        }
        if(!
$_POST['sent'])echo "<input name='$name' type='hidden' id='$name' value='$value'>";
    }
    function 
textareaForm($name,$field,$value){
        if(
$_POST[$name]){ $value=$_POST[$name];
            if(
$this->fields)$this->fields.=",";$this->fields.=$field;
            if(
$this->values)$this->values.=",";$this->values.="'$value'";
        }
        if(!
$_POST['sent'])echo "<textarea name='$name' id='$name'>$value</textarea>";
    }
    function 
checkboxForm($name,$field,$value,$tag,$check){
        if(
$_POST[$name]){ $value=$_POST[$name];
            if(
$this->fields)$this->fields.=",";$this->fields.=$field;
            if(
$this->values)$this->values.=",";$this->values.="'$value'";
        }else{
            if(
$this->fields)$this->fields.=",";$this->fields.=$field;
            if(
$this->values)$this->values.=",";$this->values.="'0'";
        }
        if(
$check or $_POST[$name])$checked=" checked";else $checked="";
        if(!
$_POST['sent'])echo "<input name='$name' type='checkbox' id='$name' value='$value'$checked> $tag";
    }
    function 
radioForm($name,$field,$value,$tag){
        if(
$_POST[$name]){ $valuen=$_POST[$name];
            if(
$this->fields)$this->fields.=",";$this->fields.=$field;
            if(
$this->values)$this->values.=",";$this->values.="'$valuen'";
        }else{
            if(
$this->fields)$this->fields.=",";$this->fields.=$field;
            if(
$this->values)$this->values.=",";$this->values.="'0'";
        }
        
$valuesAr=explode("|",$value);
        
$tagsAr=explode("|",$tag);
        for(
$f=0;$valuesAr[$f] and $tagsAr[$f];$f++){
            if(!
$_POST['sent']){echo "<input name='".$name."' type='radio' value='".$valuesAr[$f]."'";
            if(
$valuen==$valuesAr[$f])echo " checked";
            echo 
"> ".$tagsAr[$f]."<br>";}
        }
    }
    function 
selectForm($name,$field,$value,$tag){
        if(
$_POST[$name]){ $valuen=$_POST[$name];
            if(
$this->fields)$this->fields.=",";$this->fields.=$field;
            if(
$this->values)$this->values.=",";$this->values.="'$valuen'";
        }
        if(!
$_POST['sent']){echo "<select name='$name' id='$name'>";
        
$valuesAr=explode("|",$value);
        
$tagsAr=explode("|",$tag);
        for(
$f=0;$valuesAr[$f] and $tagsAr[$f];$f++){
            if(!
$_POST['sent'])echo "<option value='".$valuesAr[$f]."'";
            if(
$valuen==$valuesAr[$f])echo " selected";
            echo 
">".$tagsAr[$f]."</option>";
        }
        if(!
$_POST['sent'])echo "</select>";}
    }
    function 
submitForm($value){
        if(
$_POST['sent']){
            
$this->query.="(".$this->fields.")VALUES(".$this->values.");";
        }
        if(!
$_POST['sent'])echo "<input name='sent' type='submit' id='sent' value='$value'>";
    }
    function 
endForm(){
        if(!
$_POST['sent'])echo "</form>";
    }
}
$formulario = new quickForm('myform','mytable');
$formulario->textForm('mytext','campo1','valor1'); echo "<br>";
$formulario->passwordForm('mypassw','campo2','valor2'); echo "<br>";
$formulario->hiddenForm('myhidden','campo3','valor3'); echo "<br>";
$formulario->textareaForm('mytextarea','campo4','valor4'); echo "<br>";
$formulario->checkboxForm('mytchkbox1','campo5','valor5','check1',0); echo "<br>";
$formulario->checkboxForm('mytchkbox2','campo6','valor6','check2',1); echo "<br>";
$formulario->radioForm('myradio1','campo7','val1|val2','tag1|tag2'); echo "<br>";
$formulario->selectForm('myselect','campo8','val1|val2','tag1|tag2'); echo "<br>";
$formulario->submitForm('boton');
$formulario->endForm();
if(
$_POST['sent'])echo "<p>".$formulario->query."</p>";
?>
explicando un poco como es esto, la clase se inicia como siempre

$formulario = new quickForm('myform','mytable');

el primer parametro es el nombre/id del formulario, el segundo es el nombre de la tabla en la base de datos.

luego cada campo que se quiere agregar tiene un nombre/id, el campo de la base de datos, uno o mas valores y algunos tienen etiquetas y solo los checkbox un booleano para indicar si están marcados

$formulario->textForm('mytext','campo1','valor1');

Para terminar el formulario debe ejecutarse endForm()

$formulario->endForm();

Si se les ocurren ideas de como mejorarlo o si descubren algún bug, sus comentarios son bienvenidos, por hora este es quickForm Versión 0.1 XD

Espero que les guste la idea y vayan publicando sus versiones, por ahora el formulario solo inserta, quizás mas adelante podría también usarse para actualizar...

SALUDOS!
  #2 (permalink)  
Antiguo 05/05/2011, 16:29
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Clase quickForm para hacer formularios simples

Que tal stramin,

Deberías buscar info sobre GRASP, la clase hace demasiado, presentación, persistencia, $_POST dentro de la clase ?, también declarar la visibilidad de las propiedades y métodos, PHP 5 hace rato que es el standard.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: clase, quickform, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:39.