Ir al contenido


Foto

Datagrid php para editar, modificar y listar usuarios


  • Por favor identifícate para responder
3 respuestas en este tema

#1 matteomatico

matteomatico

    Member

  • Miembros
  • PipPip
  • 31 mensajes

Escrito 16 junio 2012 - 07:18

Tengo una pagina en php que lista los usuarios y al hacer click en un una imagen "Editar" esta edita dicho usuario...
por otro lado al hacer click en la imagen "Eliminar" esta borra el usuario
ejemplo:


<img src="http://img18.imagesh...arusuarios.jpg" alt="Image Hosted by ImageShack.us"/><br/>By <a target="_new" href="http://profile.image...atteomatico</a> at 2012-06-16



<img src="http://img201.images...arusuarios.jpg" alt="Image Hosted by ImageShack.us"/><br/>By <a target="_new" href="http://profile.image...atteomatico</a> at 2012-06-16


ahora el codigo me funciona perfectamente esta echo php orientado a objetos con mysql,
mi pregunta es la siguiente, como puedo hacer para que este mismo codigo por ejemplo,
cuando liste los usuarios al hacer doble clic en uno de ellos pueda editar al usuario desde la misma pagina???
estube leyendo por ahi que a traves de un datagrid se puede hacer,????

el codigo de mis archivos son:
----------------------
la clase class.php
----------------------


<?php

class Conectar
{
//metodo que contienen las variables para la conexion
public static function Con()
{
// 1) $conexion=mysql_connect("localhost","root","");

$conexion=mysql_connect("localhost","root","");
//forma de cotejamiento con la cual se va a trabajar(para que permita ingresar tildes)
mysql_query("SET NAMES 'utf8'");
//indiquemos el nombre bd con cual se va a trabajar
//2) mysql_select_db("sodescom");

mysql_select_db("sodescom");

return $conexion;
}
}

class Trabajo
{
//atributo usuarios
private $usuarios;
public function __construct()
{
//creamos un arreglo llamado usuarios qen el cual se guardara informacion de la tabla usuario
$this->usuarios=array();
}
//metodo que listara los usuarios
public function get_usuarios()
{
$sql="SELECT * FROM USUARIO";
$res=mysql_query($sql, Conectar::Con());
//mysql_fetch_assoc se utiliza para trabajar con array multidimensional
while($reg=mysql_fetch_assoc($res))
{
//usuarios recibe cada uno de los registros que tiene la tabla usuarios
$this->usuarios[]=$reg;

}
return $this->usuarios;
}

public function add_usuarios($rut,$contrasena,$nombres,$apellidop,$apellidom,$direccion,$fono,$celular)
{
$sql="insert into usuario (USU_RUT, USU_PASS, USU_NOMBRES, USU_APELLIDO_PATERNO, USU_APELLIDO_MATERNO, USU_DIRECCION, USU_FONO, USU_CELULAR)  values('$rut','$contrasena','$nombres','$apellidop','$apellidom','$direccion','$fono','$celular')";

$res=mysql_query($sql,Conectar::Con());
echo "<script type='text/javascript'>
alert('Usuario Ingresado Correctamente');
document.location.href = 'listar_usuarios.php';
</script>";

}


public function get_usuarios_rut($rut)
{
$sql="select *from usuario where USU_RUT='$rut'";
$res=mysql_query($sql,Conectar::Con());
while($reg=mysql_fetch_assoc($res))
{
$this->usuarios[]=$reg;
}

return $this->usuarios;
}


public function edit_usuarios($nombres,$apellidop,$apellidom,$direccion,$fono,$celular,$rut)
{
$sql="update usuario set USU_NOMBRES='$nombres',USU_APELLIDO_PATERNO='$apellidop', USU_APELLIDO_MATERNO='$apellidom', USU_DIRECCION='$direccion', USU_FONO='$fono', USU_CELULAR='$celular' where USU_RUT='$rut'";

//$sql="update usuario"
//." set "
//."USU_NOMBRES='$nombres',"
//."USU_APELLIDO_PATERNO='$apellidop',"
//."USU_APELLIDO_MATERNO='$apellidom', "
//."USU_DIRECCION='$direccion',"
//."USU_FONO='$fono',"
//."USU_CELULAR='$celular'"
//."where"
//."USU_RUT='$rut'";

$res=mysql_query($sql,Conectar::Con());
echo "<script type='text/javascript'>
alert ('El registro Ha Sido Actualizado Correctamente');
document.location.href ='listar_usuarios.php';
</script>";


//header("location: listar_usuarios.php");



}

public function eliminar_usuarios($rut)
{
$sql="delete from usuario where USU_RUT='$rut'";
$res=mysql_query($sql,Conectar::Con());
echo "<script type='text/javascript'>
alert ('El registro Ha Sido Eliminado Correctamente');
document.location.href ='listar_usuarios.php';
</script>";

}

}


?>



------------------------------
funciones en javascript
funciones.js
-----------------------------

[js]

// JavaScript Document

function limpiar()
{
document.FrmIngresar.reset();
document.FrmIngresar.focus();

}



function Validar_Vacios()
{

var form=document.FrmIngresar;

if (form.rut.value==0)
{
alert("Ingrese rut");
form.rut.value="";
form.rut.focus();
return false;
}

if (form.contrasena.value==0)
{
alert("Ingrese su contraseña");
form.contrasena.value="";
form.contrasena.focus();
return false;
}

if (form.contrasena2.value==0)
{
alert("Repita su contraseña");
form.contrasena2.value="";
form.contrasena2.focus();
return false;
}

if (form.nombres.value==0)
{
alert("Ingrese su nombre");
form.nombres.value="";
form.nombres.focus();
return false;
}

if (form.apellidop.value==0)
{
alert("Ingrese su apellido paterno");
form.apellidop.value="";
form.apellidop.focus();
return false;
}

if (form.apellidom.value==0)
{
alert("Ingrese su apellido materno");
form.apellidom.value="";
form.apellidom.focus();
return false;
}

if (form.direccion.value==0)
{
alert("Ingrese su Direccion");
form.direccion.value="";
form.direccion.focus();
return false;
}


form.submit();
}

function Validar_Vacios_Editar()
{

var form=document.FrmIngresar;


if (form.nombres.value==0)
{
alert("Ingrese su nombre");
form.nombres.value="";
form.nombres.focus();
return false;
}

if (form.apellidop.value==0)
{
alert("Ingrese su apellido paterno");
form.apellidop.value="";
form.apellidop.focus();
return false;
}

if (form.apellidom.value==0)
{
alert("Ingrese su apellido materno");
form.apellidom.value="";
form.apellidom.focus();
return false;
}

form.submit();
}

function cambiar(id,color)
{

document.getElementById(id).style.backgroundColor=color;
}

function eliminar(url)
{
if(confirm("¿Realmente desea eliminar este registro?"))
{
window.location=url;
}


}

[/js]
-------------------------------------------------------------------------------------------------------------
etiqueta de una funcion css para cambiar el color cuando se pasa mouse por encima
estilos.css
-------------------------------------------------------------------------------------------------------------


/* CSS Document */

tr.cambiar {
      background-color: #F0F0F0;
    }
   
    tr.cambiar:hover {
      background-color: #CCCCCC;
    }


-------------------------
listar_usuarios.php
------------------------

<?php
require_once ("class/class.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR...ml4/loose.dtd">
<html>
<head>

<!-- permite e indica al php y al htm que tipo de cotejamiento trabajaremos-->
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>
Listado De Usuarios
</title>
<!-- javascript-->
<script type="text/javascript" language="javascript" src="js/funciones.js"></script>
<link href="css/estilos.css" type="text/css" rel="stylesheet" />
</head>
<body>
<center><h1>Lista de Usuarios</h1></center>

<table align="center">

<tr style="background-Color:#999999">
<td valign="top" align="Left" width"150">Nombre</td>
<td valign="top" align="Center" width"150">Apellidos</td>
<td valign="top" align="Center" width"150">Direccion</td>
<td valign="top" align="Center" width"150">Telefono</td>
<td valign="top" align="Center" width"150">Celuar</td>
<td valign="top" align="Center" width"50">Editar</td>
<td valign="top" align="Center" width"50">Eliminar</td>
</tr>
<?php
//instancia de la clase insertar
$tra=new Trabajo();
$usuario=$tra->get_usuarios();
for($i=0;$i<count($usuario);$i  )
{?>

<tr id="<?php echo "ide_&i";?>" class="cambiar">


<td valign="top" align="left" width="150">
<?php
echo $usuario[$i]["USU_NOMBRES"];
?>
</td>

<td valign="top" align="Center" width="150">
<?php
$apellidos=$usuario[$i]["USU_APELLIDO_PATERNO"]." ".$usuario[$i]["USU_APELLIDO_MATERNO"];
echo $apellidos;
?>
</td>

<td valign="top" align="Center" width="150">
<?php
echo $usuario[$i]["USU_DIRECCION"];
?>
</td>

<td valign="top" align="Center" width="150">
<?php
echo $usuario[$i]["USU_FONO"];
?>
</td>

<td valign="top" align="Center" width="150">
<?php
echo $usuario[$i]["USU_CELULAR"];
?>
</td>

<td valign="top" align="Center" width="50">
<!-- permitimos hacer referencia al rut del usuario que corresponde y al momento de hacer clic en la imagen redireccione a editar.php
    el javascript se hace para esconder la referencia del rut del usuario para posteriores usos de hackers-->
<a href="javascript:void(0);" onClick="window.location='editar.php?id=<?php echo $usuario[$i]["USU_RUT"];?>';" title="Editar Usuario"><img src="img/editar.jpg" border="0"></a>
</td>

<td valign="top" align="Center" width="50">
<a href="javascript:void(0);" onClick="eliminar('eliminar.php?id=<?php echo $usuario[$i]["USU_RUT"];?>');" title="Eliminar Usuario"><img src="img/eliminar.jpg" border="0"></a>
</td>


</tr>
<?php
}
?>
</table></body></html>



-------------------------------------
pagina para editar el usuario
editar.php
-------------------------------------



<?php
require_once("class/class.php");
$tra=new Trabajo();

// esto quiere decir si $_post["grabar"] contiene datos y si se ha echo post en la pagina
if(isset($_POST["grabar"]) and $_POST["grabar"]== "si")
{
//se sale de la funcion
$tra->edit_usuarios($_POST["nombres"],$_POST["apellidop"],$_POST["apellidom"],$_POST["direccion"],$_POST["fono"],$_POST["celular"],$_POST["id"]);
exit;

}
$reg=$tra->get_usuarios_rut($_GET["id"]);

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR...ml4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"><!-- permite e indica al php y al htm que tipo de cotejamiento trabajaremos-->
<title>Editar Usuarios</title>

<script languaje="javascript" type="text/javascript" src="js/funciones.js"></script>
</head>
<!-- <body onLoad="limpiar();"-->
<center>

<form name="FrmIngresar" action="editar.php" method="post">
<table width="438" align="Center" >
  <tr><td align="center" valign="top" colspan="2">
<h2>Ingrese La Informacion a Modificar</h2></td></tr>


<tr><td valign="top" align="right">Nombres:</td>

<td valign="top" align="left"><input type="text" name="nombres" value="<?php echo $reg[0]["USU_NOMBRES"];?>"></td></tr>

<tr><td valign="top" align="right">Apellido Paterno:</td>


<td valign="top" align="left"><input type="text" name="apellidop" value="<?php echo $reg[0]["USU_APELLIDO_PATERNO"];?>"></td></tr>

<tr><td valign="top" align="right">Apellido Materno:</td>

<td valign="top" align="left"><input type="text" name="apellidom" value="<?php echo $reg[0]["USU_APELLIDO_MATERNO"];?>"></td></tr>

<tr><td valign="top" align="right">Dirección:</td>

<td valign="top" align="left"><input type="text" name="direccion" value="<?php echo $reg[0]["USU_DIRECCION"];?>"></td></tr>

<tr><td valign="top" align="right">Telefono:</td>

<td valign="top" align="left"><input type="text" name="fono" value="<?php echo $reg[0]["USU_FONO"];?>"></td></tr>

<tr><td valign="top" align="right">Celular:</td>

<td valign="top" align="left"><input type="text" name="celular" value="<?php echo $reg[0]["USU_CELULAR"];?>"></td></tr>

<!-- LINEA HORIZONTAL LARGA-->
<tr><td valign="top" align="center" colspan="2"><hr />

<input type="hidden" name="grabar" value="si">
<input type="hidden" name="id" value="<?php echo $_GET["id"];?>">

<input type="button" value="Volver" title="Volver" onClick="window.location='listar_usuarios.php';">
&nbsp;&nbsp;||&nbsp;&nbsp;
<input type="button" value="Editar" title="Editar" onClick="Validar_Vacios_Editar();"></td></tr></table></form>

</center>
</body>
</html>



----------------------------------
pagina que elimina usuario
eliminar.php
----------------------------------


<?php
require_once ("class/class.php");
$tra=new trabajo();
$tra->eliminar_usuarios($_GET["id"]);
?>


ESTARE ATENTO A SUS COMENTARIOS AMIGOS!
  • 0

#2 matteomatico

matteomatico

    Member

  • Miembros
  • PipPip
  • 31 mensajes

Escrito 17 junio 2012 - 07:03

......Pucha nadie que pueda ayudarme????
  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 17 junio 2012 - 11:58

......Pucha nadie que pueda ayudarme????


Lo que tienes que hacer es en vez de una, dos filas de la tabla, la primera que crea la lista de usuarios y la otra conel formulario de edicion en modo invisible a traves de una clase CSS, más adelante te dejo un link donde te explican como mostrar/esconder con CSS (Inglés):

http://webdesign.abo.../a/aa101507.htm

Saludos.
  • 0

#4 jooz

jooz

    Member

  • Miembros
  • PipPip
  • 45 mensajes

Escrito 23 junio 2012 - 09:41

hola a mi también me interesaría obtener ese conocimiento pero no entiendo Lo que trata de explicar el compañero enecumene........
  • 0




IP.Board spam blocked by CleanTalk.