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

problema con atributos estaticos....

Estas en el tema de problema con atributos estaticos.... en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Tengo una pagina llamada interface.php desde la cual trabajo con los atributos estaticos de la clase Persona mediante los metodos de la clase Mantenimiento los ...
  #1 (permalink)  
Antiguo 22/10/2008, 10:21
 
Fecha de Ingreso: junio-2007
Mensajes: 75
Antigüedad: 16 años, 10 meses
Puntos: 1
problema con atributos estaticos....

Tengo una pagina llamada interface.php desde la cual trabajo con los atributos estaticos de la clase Persona mediante los metodos de la clase Mantenimiento
los atributos son arrays pero solo puedo ingresar un dato y no puedo pasar al siguiente indice para ingresar mas datos..
este es el codigo....

Persona.php
Código:
<?php
	class Persona{
		public static $id=array();
		public static $pat=array();
		public static $mat=array();
		public static $nom=array();
		public static $edad=array();
		public static $sexo=array();
	}
?>
Mantenimiento.php
Código:
<?php require_once("persona.php");
	class Mantenimiento extends Persona{
		public static function agregar($newid,$newpat,$newmat,$newnom,$newedad,$newsexo){
			$i=count(parent::$id);
			echo $i;//siempre me devuelve 0 
			parent::$id[$i]=$newid;
			parent::$pat[$i]=$newpat;
			parent::$mat[$i]=$newmat;
			parent::$nom[$i]=$newnom;
			parent::$edad[$i]=$newedad;
			parent::$sexo[$i]=$newsexo;
		}
		public static function modificar($newid,$newpat,$newmat,$newnom,$newedad,$newsexo){
			for($i=0;$i<count(parent::$id);$i++){
				if(parent::$id[$i]==$newid){
					parent::$pat[$i]=$newpat;
					parent::$mat[$i]=$newmat;
					parent::$nom[$i]=$newnom;
					parent::$edad[$i]=$newedad;
					parent::$sexo[$i]=$newsexo;
					break;
				}
			}
		}
	}
?>
interface.php
Código:
<!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=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>
<?php
	require_once("mantenimiento.php");//esto no es el problema cuando envio los datos del formulario no se vuelve a escribir mantenimiento.php borrando los datos que se ingresaron...?
?>
<body>
<?php
	if(empty($_POST['txtid'])){
		crearform("","","","","","");
	}else if($_REQUEST['rbtop']=="add"){
		mantenimiento::agregar($_REQUEST['txtid'],$_REQUEST['txtpat'],$_REQUEST['txtmat'],$_REQUEST['txtnom'],$_REQUEST['txtedad'],$_REQUEST['txtsexo']);
		echo 'Datos Agregados';
		crearform($_REQUEST['txtid'],$_REQUEST['txtpat'],$_REQUEST['txtmat'],$_REQUEST['txtnom'],$_REQUEST['txtedad'],$_REQUEST['txtsexo']);
	}else if($_REQUEST['rbtop']=="del"){
		
	}else if($_REQUEST['rbtop']=="mod"){
		
	}else if($_REQUEST['rbtop']=="srch"){
		
	}

	function crearform($nid,$npat,$nmat,$nnom,$nedad,$nsexo){
		echo	'<form name="frm1" action="interface.php" method="post">
					<table align="center" border="1">
						<tr>
							<td>ID</td>
							<td><input type="text" name="txtid" value="'.$nid.'"/></td>
						</tr>
						<tr>
							<td>Paterno</td>
							<td><input type="text" name="txtpat" value="'.$npat.'"/></td>
						</tr>
						<tr>
							<td>Materno</td>
							<td><input type="text" name="txtmat" value="'.$nmat.'"/></td>
						</tr>
						<tr>
							<td>Nombre</td>
							<td><input type="text" name="txtnom" value="'.$nnom.'"/></td>
						</tr>
						<tr>
							<td>Edad</td>
							<td><input type="text" name="txtedad" value="'.$nedad.'"/></td>
						</tr>
						<tr>
							<td>Sexo</td>
							<td><input type="text" name="txtsexo" value="'.$nsexo.'"/></td>
						</tr>
						<tr>
							<td colspan="2">
								Agregar<input type="radio" name="rbtop" value="add">
								Eliminar<input type="radio" name="rbtop" value="del">
								Modificar<input type="radio" name="rbtop" value="mod">
								Buscar<input type="radio" name="rbtop" value="srch">
							</td>
						</tr>
						<tr>
							<td colspan="2" align="center">
								<input type="submit" name="btnsend" value="Enviar"/>
							</td>
						</tr>
					</table>
				</form>';
	}
?>
</body>
</html>
  #2 (permalink)  
Antiguo 22/10/2008, 10:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problema con atributos estaticos....

Tema trasladado a PHP Orientado a Objetos.

Hola cancha,

Recuerda que PHP es un lenguaje "stateless" es decir con cada request a cada pagina se vuelven a crear los objetos y todo.

Necesitas ver la forma de persistir tus objetos para poder hacer lo que quieres, y lo puedes hacer en una sesión o en una base de datos.

Por otro lado tu diseño de tu sistema no es el más adecuado, replantea tu sistema, lo mejor es que tengas un array de personas a varios arrays con cada dato.

Saludos.
  #3 (permalink)  
Antiguo 22/10/2008, 10:54
 
Fecha de Ingreso: junio-2007
Mensajes: 75
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: problema con atributos estaticos....

Cita:
Iniciado por GatorV Ver Mensaje
Tema trasladado a PHP Orientado a Objetos.

Hola cancha,

Recuerda que PHP es un lenguaje "stateless" es decir con cada request a cada pagina se vuelven a crear los objetos y todo.

Necesitas ver la forma de persistir tus objetos para poder hacer lo que quieres, y lo puedes hacer en una sesión o en una base de datos.

Por otro lado tu diseño de tu sistema no es el más adecuado, replantea tu sistema, lo mejor es que tengas un array de personas a varios arrays con cada dato.

Saludos.
si estuve pensando en sesiones gracias por las sugerencias....

salu2
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 09:47.