Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Hacer formularios objeto?

Estas en el tema de Hacer formularios objeto? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. foreros: Estoy iniciandome en esto de la POO y ya he visto que ahorra mucho trabajo. Creen que se pueda fabricar un formulario de ingreso ...
  #1 (permalink)  
Antiguo 29/12/2005, 12:55
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
Hacer formularios objeto?

foreros:

Estoy iniciandome en esto de la POO y ya he visto que ahorra mucho trabajo. Creen que se pueda fabricar un formulario de ingreso de datos con objetos? es que ya estoy aburrido de hacer mantenedores, andar revisando el nombre de los campos, que sean igual a los de la tabla..

Tal vez se podría crear un objeto a los cuales enviarle parametros como nombre de la tabla, nombre de cada campo, que campo viene a ser un combobox....

alguna sugerencia de por donde empezar?

saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #2 (permalink)  
Antiguo 30/12/2005, 07:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo puedes hacer bajo OOP o simples funciones en principio ..

De hecho ya hay muchas classes de este estilo implementadas en:
www.phpclasses.org (secciones HTML y Data Base)

Lo "malo" de esto en general (uses OOP o no) es que vas a generar tu "HTML" para tu "formualario" desde PHP .. no vas a poder trabajar de forma tan "visual" el HTML generado .. por ejemplo cuando usas motores de gestión de plantillas y debes trabajar con un "diseñador" que te va hacer la "página" que contenga ese formulario.

Un saludo,
  #3 (permalink)  
Antiguo 31/12/2005, 02:45
 
Fecha de Ingreso: septiembre-2005
Mensajes: 142
Antigüedad: 18 años, 7 meses
Puntos: 3
Foro OOP

Bueno yo te recomendaria HTML_QuickForm que se puede usar para PHP4 y PHP5 no esta nada mal, HTML_QuickForm es un paquete PEAR solo tienes que hacer un :
Código:
pear install HTML_QuickForm
luego prueba en ejecutar el siguiente codigo
Código PHP:
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
      <title>A simple form</title>
  </head>

  <body>
  <?php
      
require_once "HTML/QuickForm.php";

      
$form = new HTML_QuickForm('frmTest''get');
      
$form->addElement('header''hdrTesting''Un simple formulario');
      
$form->addElement('text''txtnombre''Tu nombre?');
      
$form->addElement('text''txtapellidos''Tu apellido?');
      
$form->addElement('text''txtedad''edad?');
      
$form->addElement('text''txtTelf''numero de telefono?');
      
$form->addElement('reset''btnClear''Limpiar');
      
$form->addElement('submit''btnSubmit''Enviar');
      if (
$form->validate()) {
          
// If the form validates then freeze the data
          
$form->freeze();
      }
      
$form->display();
  
?>
  </body>
</html>
si programas con un MVC y utilizas Smarty que seria lo más habitual como motor de templates puedes procesar los formularios de la siguiente manera
Código PHP:
<?php
      
require_once "HTML/QuickForm.php";
      require_once 
'HTML/QuickForm/Renderer/ArraySmarty.php';
      require_once 
'Smarty.class.php';

      
$form = new HTML_QuickForm('frmTest''get');
      
$form->addElement('header''hdrTesting''Testing Smarty');
      
$form->addElement('text''txtFirstName''First name?');
      
$form->addElement('text''txtLastName''Last name?');
      
$form->addElement('text''txtAge''Age?');
      
$form->addElement('text''txtTelephone''Telephone number?');
      
$form->addElement('reset''btnClear''Clear');
      
$form->addElement('submit''btnSubmit''Submit');
      if (
$form->validate()) {
          
# If the form validates then freeze the data
          
$form->freeze();
      }

      
// Create the template object
      
$tpl =& new Smarty;
      
$tpl->template_dir '.';
      
$tpl->compile_dir  '/tmp';

      
// Create the renderer object    
      
$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($tpl);

      
// build the HTML for the form
      
$form->accept($renderer);

      
// assign array with form data
      
$tpl->assign('form_data'$renderer->toArray());

      
// parse and display the template
      
$tpl->display('smarty1.tpl');

  
?>
y el template
Código PHP:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  <!--  
$Idsmarty-guide.tpl,v 1.1 2005/03/03 19:26:54 kae Exp $ -->
  <
html>
  <
head>
    <
title>Smarty template demonstration</title>
    <
style type="text/css">
      {
literal}   
        
th {
          
text-alignright;
        }
      {/
literal}
    </
style>
  </
head>

  <
body>
  <
h2>
    {
$form_data.header.hdrTesting}
  </
h2>
  <
form {$form_data.attributes}>
    <!-- 
Display the fields -->
    <
table>
      <
tr>
        <
th>{$form_data.txtFirstName.label}</th>
        <
td>{$form_data.txtFirstName.html}</td>
        <
th>{$form_data.txtLastName.label}</th>
        <
td>{$form_data.txtLastName.html}</td>
      </
tr>
      <
tr>
        <
th>{$form_data.txtAge.label}</th>
        <
td>{$form_data.txtAge.html}</td>
        <
th>{$form_data.txtTelephone.label}</th>
        <
td>{$form_data.txtTelephone.html}</td>
      </
tr>
      <!-- 
Display the buttons -->
      <
tr>
        <
td align="center" colspan="4">
          {
$form_data.btnClear.html}&nbsp;{$form_data.btnSubmit.html}
        </
td>
      </
tr>
      <!-- 
Display the copyright -->
      <
tr>
        <
td style="font-size:11px; color: navy; text-align: center" colspan="4">
          &
copy;2004 Tiger Computing Ltd
        
</td>
      </
tr>
    </
table>
  </
form>
  </
body>
  </
html
En fin es un comienzo muy bueno.

Última edición por Casuis; 31/12/2005 a las 03:50
  #4 (permalink)  
Antiguo 31/12/2005, 08:59
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Aha, bastante bueno el ejemplo, pero un poco complicado para quien dice recién iniciarse en la Programación Orientada a Objetos :)

¿Cómo estás Chechir?

Yo te recomiendo que comiences tranquilo, que hagas un objeto formulario, que pueda contener (dentro de un array anidado) otros objetos del tipo Text, Password, Textarea, Radio, etc... vos mismo te vas a ir dando cuenta como hacer la jerarquía de clases. Por ejemplo, hacer un objeto Elemento, del cual extienda Text. Password puede extender de Elemento o de Text también. Lo mismo Textarea. Otra cosa son los elementos de selección múltiple.

Luego, a tu objeto Formulario, le agregás métodos para trabajar sobre tus objetos, como validaciones y comprobaciones.

Y finalmente, para el renderizado, deberías lograr que un Objeto Formulario, trabaje con un template propio, a nivel Formulario, o sea, los tags <form> y algunos parámetros más, y donde va a ir cada elemento, pero nada más. Luego, CADA Objeto interno del formulario, debe tener un template propio, para saber representarse a si mismo. O sea, un template para los Textarea, un template para los Select, etc.

Por ahora puedo responderte con este nivel de generidad, pero si necesitás una mano, sabés donde encontrarme. Y quizás en base a lo que charlemos, pueda preparar un artículo para zonaPHP.

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #5 (permalink)  
Antiguo 04/01/2006, 17:15
Avatar de mega82es  
Fecha de Ingreso: septiembre-2005
Mensajes: 38
Antigüedad: 18 años, 7 meses
Puntos: 0
Cita:
Iniciado por Cluster
De hecho ya hay muchas classes de este estilo implementadas en:
www.phpclasses.org (secciones HTML y Data Base)
Es cierto Cluster, hay una clase muy buena para crear formularios y validarlos en http://www.phpclasses.org/browse/package/1.html

Viene con algunos ejemplos

Saludos
  #6 (permalink)  
Antiguo 12/01/2006, 17:57
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 2 meses
Puntos: 11
Guenas, disculpen que me meta, pero aca pronostico un par de problemitas:

1) Si utilizas el paquetito de PEAR, o algunas otras clases tan linda que ofrecen por ahi, dios salve al diseniador que le toque actualizar los formularios de tu sitio. Y dios salve al programador que tenga que desarrollar un CMS, porque desde ya te digo que un formulario de ese tipo es imposible de incorporar a un CMS y es imposible de modificar utilizando nada mas y nada menos que un navegador.

No pienses solo en vos, pensa tambien en los demas. Que va a pasar con ese sitio en 2 anios, en manos de quien va a terminar? Lo van a querer actualizar, modificar, rediseniar?

2) Hacer las cosas de esa manera lo unico que va a lograr es que te acostumbres mal. Lo que se acostumbra es separar, no mezclar y meter todo junto.

Ahora, que te puedo recomendar. Desde mi punto de vista y uno de los mejores enfoques en cuanto a este tema se refiere es esta aplicacion: http://www.stadtaus.com/en/php_scripts/formmail_script/
Quiza no sea la solucion a todos tus problemas, pero si lo analizas bien y entendes la logica detras de lo que esta persona intenta lograr, te va a ser mas que util.
  #7 (permalink)  
Antiguo 12/01/2006, 18:01
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 2 meses
Puntos: 11
...y el manual para que leas antes de descargarlo, asi tenes una idea de como funciona y en caso de no ser lo que estas buscando no perder tiempo:

http://www.stadtaus.com/docu/form_ma...t_english.html
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 20:38.