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>";
?>
$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!