Foros del Web » Programando para Internet » PHP »

Paginación en MVC CON DTO

Estas en el tema de Paginación en MVC CON DTO en el foro de PHP en Foros del Web. Hola a todos eh iniciado a programar con mvc y pdo en php ya consegui hacer los mantenimientos y muxas cosas, pero no consigo hacer ...
  #1 (permalink)  
Antiguo 22/10/2009, 16:31
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Paginación en MVC CON DTO

Hola a todos eh iniciado a programar con mvc y pdo en php ya consegui hacer los mantenimientos y muxas cosas, pero no consigo hacer la paginación algunas ideas
o un ejemplo como hacerlo en el view respetando las reglas del mvc y e dto.

AGREADECIENDO SU COMPRENSION.

GRACIAS.
  #2 (permalink)  
Antiguo 22/10/2009, 16:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Paginación en MVC CON DTO

Cita:
Iniciado por dquispe Ver Mensaje
[...] pero no consigo hacer la paginación algunas ideas
o un ejemplo como hacerlo [...]
usa un paginador ya existe, es mas fácil que lo integres con lo que tienes a que hagas uno desde cero...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/10/2009, 16:38
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Paginación en MVC CON DTO

Paginador esa nta de dond lo descargo... pro mjor seria crear uno.. quiero ideas como hacer esa nota, zapatie pa hacer mis mantenimientos y un proceso.. me faltaria la paginación ...
  #4 (permalink)  
Antiguo 22/10/2009, 17:55
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: Paginación en MVC CON DTO

Puedes usar PHPPaging de Okram, o Zend_Paginator.

Saludos.
  #5 (permalink)  
Antiguo 23/10/2009, 07:43
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Paginación en MVC CON DTO

No puedo utilizar esa libreria, ya que no respeta el mvc.
Te digo de PHPPaging de Okram.
  #6 (permalink)  
Antiguo 23/10/2009, 08:51
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: Paginación en MVC CON DTO

¿Respeta el MVC? MVC es un patrón de diseño, un paginador es una herramienta aparte, por lo que cualquier paginador debe de funcionar independientemente de si usas o no MVC ya que es algo totalmente aparte.

Saludos.
  #7 (permalink)  
Antiguo 26/10/2009, 07:51
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Paginación en MVC CON DTO

Pero segun lo que se en el view no debe haber ninguna consulta sql y en ese paginator se hacen consultas sql e el view no cual no es valido, quisas me equivoque en el mvc por siaca trabajo con dto y mvc, espero tu respuesta haber si me explicas mas sobre ese tema porque asi m comentaron que es el mvc.

Haber foreros podrian explikarme mas detalladamente las reglas del mvc.
  #8 (permalink)  
Antiguo 26/10/2009, 08:24
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Paginación en MVC CON DTO

Tienen razon gatorv ya implemente el paginador de okram con mvc solo tienen q manejar sesiones para poder mantener tus paginaciones
mas bien muestra lo q tienes para poder explicarte mejor como estas armando tu vista, y controlador ?
  #9 (permalink)  
Antiguo 26/10/2009, 09:11
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: Paginación en MVC CON DTO

No hay "reglas" de MVC respecto a las consultas SQL, recuerda que MVC es un patrón de diseño y es para separar/deslindar responsabilidades al hacer el diseño de tu aplicación.

La capa View, es la que afecta al modelo, por lo que se podría decir que son necesarias las consultas SQL en cierto grado si no estas abstrayendo el acceso a tu base de datos.

Saludos.
  #10 (permalink)  
Antiguo 26/10/2009, 09:21
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Paginación en MVC CON DTO

ok voy a mostrar una parte de mi codigo..
usuarios.php
<?
session_start();
//Configurar el tipo de gestor de base de datos
$_SESSION["ds"]="mysql";

if(isset($_SESSION["lista"])){
$lista_usuarios=$_SESSION["lista"];
unset($_SESSION["lista"]); //Destruye la variable de session
}
if(isset($_SESSION["error"])){
$error=$_SESSION["error"];
unset($_SESSION["error"]); //Destruye la variable de session
}
$mensaje = null;
if (isset($_SESSION["msj"])) {
$mensaje = $_SESSION["msj"];
unset($_SESSION["msj"]);
}
$accion_elegida=null;
if (isset($_REQUEST["accion"])) {
$accion_elegida = $_REQUEST["accion"];
}
//capturar la opcion para refrescar la página
$opcion=@$_REQUEST["opc"];
?>
<script>
function eliminar(codigo){
var url;
var del = window.confirm("¿Esta seguro que desea eliminar el registro " + codigo + "?");
if ( del ){
url="../controler/usuarios_controler.php?accion=del&codi=" + codigo;
location.href=url;
} else {
return false;
}
}

</script>
<style type="text/css">
<!--
.Estilo1 {
color: #0000FF;
font-weight: bold;
}
.Estilo2 {font-size: 14px}
-->
</style>
</head>
<script language="javascript">
function insertar_usuario() {
var url="usuarios.php?opc=insertar_usuario";
location.href=url;
}
</script>
<link rel="stylesheet" type="text/css" href="../css/estilo.css">
<body>
<h3>Listado de Usuarios</h3>
<form id="frmbusuarios" name="frmbusuarios" method="post" action="../controler/usuarios_controler.php" >
<input name="operacion" type="hidden" id="operacion" value="1" />
<table width="747" border="1" align="center">
<tr>
<td width="67">Buscar por </td>
<td width="141"><select name="cbousuarios" id="cbousuarios">
<option value="">Seleccione campo</option>
<option value="nomusu">Nombre</option>
<option value="apeusu">Apellido</option>
<option value="dir_user">Dirección</option>
<option value="dni_user">DNI</option>
<option value="tel_user">Telefono</option>
<option value="loginusu">Login</option>
</select> </td>
<td width="83">Con el valor </td>
<td width="364"><input name="txt_dato" type="text" id="txt_dato" size="60" /></td>
<td width="58"><input name="btnbuscar" type="submit" id="btnbuscar" value="Bucar" /></td>
</tr>
</table>
</form>
<table align="center" width="248" height="15" background="../imagenes/full.PNG" class="tabla_doble">
<tr>
<td width="41"><img src="http://www.forosdelweb.com/f18/imagenes/users_add.png" alt="edit" name="btninsertar" width="35" height="34" align="center" border="0" title="Agregar" onClick="insertar_usuario()"/></a></td>
</td>
<td width="108"><div align="center">Salir</div></td>
<td width="103"><div align="center"></div></td>
</tr>
</table>
<? if(isset($lista_usuarios)) { ?>
<div id="datos">
<form id="frmusuarios" name="frmusuarios" method="post" action="../controler/usuarios_controler.php">
<table align="center" width="1039" bordercolorlight="#000000" cellspacing="2" cellpadding="2" class="tabg">
<tr>
<td width="26" height="30" background="../imagenes/full.PNG">
<div align="left"><img src="http://www.forosdelweb.com/f18/imagenes/b_drop.png" title="Active los checks a eliminar" align="middle"></div></td>
<td width="181" height="30" background="../imagenes/full.PNG" class="Estilo2"><div align="center">Nombre</div></td>

<td width="158" height="30" background="../imagenes/full.PNG" class="Estilo2">
<div align="left" class="Estilo9">
<div align="center">Apellido</div>
</div></td>

<td width="191" height="30" background="../imagenes/full.PNG" class="Estilo2">
<div align="left" class="Estilo9">
<div align="center">Direcci&oacute;n</div>
</div></td>

<td width="69" height="30" background="../imagenes/full.PNG" class="Estilo2">
<div align="left" class="Estilo9">
<div align="center"><span class="Titulo">DNI</span></div>
</div></td>

<td width="73" height="30" background="../imagenes/full.PNG" class="Estilo2"><div align="center">Telefono</div></td>

<td width="99" height="30" background="../imagenes/full.PNG" class="Estilo2">
<div align="center">Login</div></td>

<td width="23" background="../imagenes/full.PNG" class="Estilo2"><img src="http://www.forosdelweb.com/f18/imagenes/b_edit.png" alt="editar" align="middle" title="Active los checks a eliminar" /></td>
<td width="26" height="30" background="../imagenes/full.PNG" class="Estilo2">
<div align="justify"><img src="http://www.forosdelweb.com/f18/imagenes/b_drop.png" alt="delete" align="middle" title="Seleccione los datos a Eliminar" /></div></td>
<td width="129" height="30" background="../imagenes/full.PNG" class="Estilo2">
<div align="justify"><img src="http://www.forosdelweb.com/f18/imagenes/compare_pass.png" title="Comparar Pass" align="middle"></div></td>
</tr>
<? for ($i=0;$i<count($lista_usuarios);$i++) { ?>
<tr><td> <a href="http://www.forosdelweb.com/f18/controler/usuarios_controler?accion=del&codi=<?=$lista_usuar ios[$i]["nomusu"] ?>"><div class="pintar"><div align="left">
<input type="checkbox" title="" name="chk<?=$codigo?>" id="chk<?=$codigo?>" value="<?=$codigo?>" onClick="eliminar('<?=$codigo?>')"/></td>
<td align="center" valign="middle">
<span class="tablaDato">
<?=$lista_usuarios[$i]["nomusu"]?>
</span>
<div align="left">
<div align="left"></div></td>
<td class="tablaDato"><?=$lista_usuarios[$i]["apeusu"]?></td>
<td class="tablaDato"><?=$lista_usuarios[$i]["dir_user"]?></td>
<td class="tablaDato"><?=$lista_usuarios[$i]["dni_user"]?></td>
<td class="tablaDato"><?=$lista_usuarios[$i]["tel_user"]?></td>
<td class="tablaDato"><?=$lista_usuarios[$i]["loginusu"]?></td>
<td width="23"><a href="http://www.forosdelweb.com/f18/controler/usuarios_controler?op=act&codi=<?=$lista_usuarios[$i]["nomusu"] ?>"><center><img src="http://www.forosdelweb.com/f18/imagenes/b_edit.png" alt="edit" width="16" height="16" align="center" border="0" title="Editar"/></td>
<? $codigo=$lista_usuarios[$i]["nomusu"]; ?>
<td align="center" valign="middle"><a href="http://www.forosdelweb.com/f18/controler/usuarios_controler?accion=del&codi=<?=$lista_usuar ios[$i]["nomusu"] ?>" onClick="eliminar('<?=$codigo?>')"><img src="http://www.forosdelweb.com/f18/imagenes/b_drop.png" width="16" height="16" alt="Eliminar" border="0" /></a></td>
<div> </div><td width="129"><a href="http://www.forosdelweb.com/f18/controler/usuarios_controler?op=cpas&codi=<?=$lista_usuarios[$i]["nomusu"]?>"><center>
<div align="left"><img src="http://www.forosdelweb.com/f18/imagenes/compare_pass.png" alt="edit" width="16" height="16" align="center" border="0" title="Comparar Password"/></div></td>
<div></div>
</tr>
<tr>
<td> </tr>
<? } ?>
</table>
</form>
</div>
<? } ?>
<?php if (isset($mensaje)) {
echo "<div class='success'>$mensaje</div>";
}
?>
<? if(isset($error)) { ?>
<div class="Estilo1" id="mensaje"><?=$error?></div>
<? } ?>
  #11 (permalink)  
Antiguo 26/10/2009, 09:22
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Paginación en MVC CON DTO

el de mi controler
usuarios_controler.php

<?
session_start();
require_once "../model/usuario_model.php";
require_once "../dto/usuario_dto.php";

$accion=$_REQUEST["op"];
$op=$_REQUEST["operacion"];

$campo=$_REQUEST["cbousuarios"];
$dato=$_REQUEST["txt_dato"];

//Capturando la accion
$accion_elegida = $_REQUEST["accion"];
$codigo_atr = $_REQUEST["codi"];

if($op==1) { buscar_usuario($campo,$dato); }
if($op==2) { insertar_usuario(); }

if($op==3) { modificar_usuario($codigo_atr);}
if($op==4) { comparar_password($codigo_atr);}

function buscar_usuario($campo,$dato) {
try {
$model_usuario=new usuario_model();
$lista_usuario=$model_usuario->read_usuario($campo,$dato);
$_SESSION["lista"]=$lista_usuario; //Recibe toda la data
}
catch(Exception $e){
$_SESSION["error"]=$e->getMessage();
}
header("Location: ../view/usuarios.php");
}

function insertar_usuario(){
try {
//Capturar la entrada de datos
$nusu=$_REQUEST["txt_nomusu"];
$apusu=$_REQUEST["txt_apeusu"];
$dirusu=$_REQUEST["txt_dirusu"];
$celusu=$_REQUEST["txt_celusu"];
$dniusu=$_REQUEST["txt_dniusu"];
$logusu=$_REQUEST["txt_logusu"];
$pasusu=$_REQUEST["txt_pasusu"];

//Empaquetar los datos (DTO)
$dto=new usuario_dto(); //Instancia de DTO
//cargar los datos en el dto
$dto->setNomusu($nusu);
$dto->setApeusu($apusu);
$dto->setDirusu($dirusu);
$dto->setDniusu($dniusu);
$dto->setCelusu($celusu);
$dto->setLogusu($logusu);
$dto->setPasusu($pasusu);
//Invocar al metodo insertar
$model_usuario=new usuario_model();
$model_usuario->create_usuario($dto);
$_SESSION["msj"] ="<img src='../imagenes/accept.png' />Registro Ingresado Correctamente .";
}
catch(Exception $e){
$_SESSION["error"]=$e->getMessage();
}
header("Location: ../view/usuarios.php");
}

function modificar_usuario($codigo_atr) {
try {
// Capturar la entrada de datos
$nusu=$_REQUEST["txt_nomusu"];
$apusu=$_REQUEST["txt_apeusu"];
$dirusu=$_REQUEST["txt_dirusu"];
$celusu=$_REQUEST["txt_celusu"];
$dniusu=$_REQUEST["txt_dniusu"];
$logusu=$_REQUEST["txt_logusu"];
$pasusu=$_REQUEST["txt_pasusu"];


$dto=new usuario_dto(); //Instancia de DTO
//cargar los datos en el dto
$dto->setNomusu($nusu);
$dto->setApeusu($apusu);
$dto->setDirusu($dirusu);
$dto->setDniusu($dniusu);
$dto->setCelusu($celusu);
$dto->setLogusu($logusu);
$dto->setPasusu($pasusu);

$model_usuario= new usuario_model();
$model_usuario->update_usuario($dto,$codigo_atr);
$_SESSION["msj"] ="<img src='../imagenes/accept.png' />Registro Actualizado Correctamente .";
}
catch(Exception $e){
$_SESSION["error"]=$e->getMessage();
}
}



function buscar_usuario_update($codigo_atr) {
try {
$model_usuario=new usuario_model();
$rec=$usuario_model->read_usuario_update($codigo_atr);
$_SESSION["listab"]=$rec; //Recibe toda la data
}
catch(Exception $e){
$_SESSION["error"]=$e->getMessage();
}
}

/////
try {
$model_usuario = new usuario_model();

if ($accion == "act") {
//proceso -- $contenido es un arreglo
$contenido = $model_usuario-> read_usuario_update($codigo_atr);
//salida
$_SESSION["listab"] = $contenido;

header("Location: ../view/usuarios.php?opc=modificar_usuario&codi='$codigo_a tr'");
exit;
}
}
catch(Exception $e){
$_SESSION["error"]=$e->getMessage();
}

//Regresar
header("location: ../view/usuarios.php");

try {
$model_usuario = new usuario_model();

if ($accion == "cpas") {
//proceso -- $contenido es un arreglo
$contenido = $model_usuario-> read_usuario_cpas($codigo_atr);
//salida
$_SESSION["listac"] = $contenido;

header("Location: ../view/usuarios.php?opc=comparar_password&codi='$codigo_a tr'");
exit;
}
}
catch(Exception $e){
$_SESSION["error"]=$e->getMessage();
}

//Regresar
header("location: ../view/usuarios.php");

function buscar_usuario_password($codigo_atr) {
try {
$model_usuario=new usuario_model();
$rec=$usuario_model->read_usuario_cpas($codigo_atr);
$_SESSION["listac"]=$rec; //Recibe toda la data
}
catch(Exception $e){
$_SESSION["error"]=$e->getMessage();
}
}

if ($accion_elegida == "del") {
//proceso
$model_usuario=new usuario_model();
$model_usuario->delete_usuario($codigo_atr);
//salida
$_SESSION["msn"] = "Registro eliminado";
header("Location: ../view/usuarios.php");
}

?>
  #12 (permalink)  
Antiguo 26/10/2009, 09:25
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Paginación en MVC CON DTO

Haber como puedo hacer una paginación sin usar sql en el view osea en celulares, una idea como hacerlo.
  #13 (permalink)  
Antiguo 26/10/2009, 10:33
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: Paginación en MVC CON DTO

Ya te dijieron más arriba, tienes que usar un paginador como PHPPaging, o alguno similar. Una buena practica es que hagas el calculo del set de items en tu logica y solo pases a la vista los items a mostrar.

Saludos.
  #14 (permalink)  
Antiguo 26/10/2009, 11:19
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
MMM dejame intentarlo haber que sale.

Cuando termine mi sistema lo posteare aqui.

Saludos..

Quien me puede ayudar............................................ .

Cita:
Iniciado por vili86 Ver Mensaje
Tienen razon gatorv ya implemente el paginador de okram con mvc solo tienen q manejar sesiones para poder mantener tus paginaciones
mas bien muestra lo q tienes para poder explicarte mejor como estas armando tu vista, y controlador ?
Doctor me podrias explicar como as hecho tu paginación es un dilema en el que estoy.

Saludos esperando tu respuesta haber si tienes un ejemplo mejor.

Última edición por GatorV; 04/11/2009 a las 12:33
  #15 (permalink)  
Antiguo 04/11/2009, 13:41
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: Paginación en MVC CON DTO

Te recomiendo buscar el Paginador de Okram, en su pagina web tiene muchos ejemplos de como usarlo y lo puedes fácilmente adaptar a tu sistema.

Saludos.
  #16 (permalink)  
Antiguo 04/11/2009, 16:58
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Paginación en MVC CON DTO

Ok gator t cuento ya esta a punto d salirme la paginación ... sin utilizar libreria... solo k en la busqueda y cuando le doy siguiente no me bota data pero voy por buen camino a full sesiones
pero quiero tratar d implementar esa libreria haber cual mjor funciona...
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 13:24.