AJAX, PHP, MySQL - Eliminar registros
En está oportunidad veremos como realizar la eliminación de registros combinando php + mysql + ajax. Nuestro objetivo es mostrar una relación o lista de todos los empleados, y que cada elemento tenga una opción para ser eliminado, al momento de hacerle clic en este opción, un cuadro de dialogo nos preguntará si deseamos realmente continuar con la operación. Haremos uso de la tabla empleados que hemos usado ya en los 3 tutoriales anteriores. Empezemos entonces.
Funciones en JavaScript
ajax.js » Este archivo contiene 2 funciones: objetoAjax declara el objeto XMLHttpRequest que usaremos dependiendo del navegador y eliminarDato(idempleado) se encarga de enviar el codigo del empleado que será eliminado.
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function eliminarDato(idempleado){
//donde se mostrará el resultado de la eliminacion
divResultado = document.getElementById('resultado');
//usaremos un cuadro de confirmacion
var eliminar = confirm("De verdad desea eliminar este dato?")
if ( eliminar ) {
//instanciamos el objetoAjax
ajax=objetoAjax();
//uso del medotod GET
//indicamos el archivo que realizará el proceso de eliminación
//junto con un valor que representa el id del empleado
ajax.open("GET", "eliminacion.php?idempleado="+idempleado);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar resultados en esta capa
divResultado.innerHTML = ajax.responseText
}
}
//como hacemos uso del metodo GET
//colocamos null
ajax.send(null)
}
}
Código en PHP
conexion.php » Guarda los datos de la conexión a la base de datos.
<?php //Configuracion de la conexion a base de datos $bd_host = "localhost"; $bd_usuario = "root"; $bd_password = ""; $bd_base = "ribosomatic"; $con = mysql_connect($bd_host, $bd_usuario, $bd_password); mysql_select_db($bd_base, $con); ?>
consulta.php » Lista todos los registros de la tabla empleado. Además cada elemento mostrado tiene la opción de ser eliminado haciendo clic en su ID, así se llamará a la funcion eliminarDato(idempleado) que especificamos en el archivo ajax.js.
<?php
require('conexion.php');
//consulta todos los empleados
$sql=mysql_query("SELECT * FROM empleados",$con);
//muestra los datos consultados
//haremos uso de tabla para tabular los resultados
?>
<table style="border:1px solid #FF0000; color:#000099;width:400px;">
<tr style="background:#99CCCC;">
<td>Codigo</td>
<td>Nombres</td>
<td>Departamento</td>
<td>Sueldo</td>
</tr>
<?php
while($row = mysql_fetch_array($sql)){
echo " <tr>";
//mediante el evento onclick llamaremos a la funcion eliminarDato(), la cual tiene como parametro
//de entrada el ID del empleado
echo " <td><a style="text-decoration:underline;cursor:pointer;" onclick="eliminarDato('".$row['idempleado']."')">".$row['idempleado']."</a></td>";
echo " <td>".$row['nombres']."</td>";
echo " <td>".$row['departamento']."</td>";
echo " <td>".$row['sueldo']."</td>";
echo " </tr>";
}
?>
</table>
eliminacion.php » Se encarga de recibir el parametro idempleado, de la función eliminarDato(idempleado), y mediante una sentencia SQL eliminar dicho registro, al final del proceso se vuelve a llamar al archivo consulta.php para mostrar los registros actuales.
<?php
require('conexion.php');
//variable GET
$idemp=$_GET['idempleado'];
//elimina el registro de la tabla empleados
$sql="DELETE FROM empleados WHERE idempleado=$idemp";
mysql_query($sql,$con);
include('consulta.php');
?>
index.php » Es el archivo principal de nuestro ejemplo, donde llamaremos al archivo ajax.js y también especificaremos una capa (div) llamada resultado.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Eliminacion de registros con AJAX</title>
<script language="JavaScript" type="text/javascript" src="ajax.js"></script>
</head>
<body>
<h2>Eliminar registros de la tabla empleado</h2>
<p>Clic en el código del empleado para eliminar el registro. </p>
<div id="resultado">
<?php
include('consulta.php');
?>
</div>
</body>
</html>
Eso es todo! Recuerden cambiar los valores del archivo conexion.php pues si no lo hacen habra errores. Así finalizamos los cuatro procesos que siempre se realiza en una base de datos: Consulta, Inserción, Actualización y Eliminacion de registros. Pueden descargar el ejemplo y probarlo en su servidor web local. En la sección Ejemplos también pueden ver la puesta en marcha de este tutorial.


Comentarios
<a href=http://videocodezone.com/users/Allopurinol-531>Allopurinol-531</a>
<a href=http://videocodezone.com/users/Bentyl-489>Bentyl-489</a>
<a href=http://videocodezone.com/users/Carafate-1002>Carafate-1002</a>
<a href=http://videocodezone.com/users/Cytotec-672>Cytotec-672</a>
<a href=http://videocodezone.com/users/Gasex-725>Gasex-725</a>
<a href=http://videocodezone.com/users/Metoclopramide-448>Metoclopramide-448</a>
<a href=http://videocodezone.com/users/Nexium-482>Nexium-482</a>
<a href=http://videocodezone.com/users/Pepcid-517>Pepcid-517</a>
<a href=http://videocodezone.com/users/Prevacid-482>Prevacid-482</a>
<a href=http://videocodezone.com/users/Prilosec-1064>Prilosec-1064</a>
<a href=http://videocodezone.com/users/Protonix-569>Protonix-569</a>
<a href=http://videocodezone.com/users/Ranitidine-701>Ranitidine-701</a>
<a href=http://videocodezone.com/users/Reglan-436>Reglan-436</a>
<a href=http://videocodezone.com/users/Tagamet-502>Tagamet-502</a>
<a href=http://videocodezone.com/users/Zantac-525>Zantac-525</a>
<a href=http://videocodezone.com/users/Zyloprim-597>Zyloprim-597</a>
<a href=http://videocodezone.com/users/Advair-Diskus-855>Advair-Diskus-855</a>
<a href=http://videocodezone.com/users/Alavert-429>Alavert-429</a>
<a href=http://videocodezone.com/users/Allegra-451>Allegra-451</a>
<a href=http://videocodezone.com/users/Aristocort-519>Aristocort-519</a>
<a href=http://videocodezone.com/users/Astelin-638>Astelin-638</a>
<a href=http://videocodezone.com/users/Beconase-AQ-527>Beconase-AQ-527</a>
<a href=http://videocodezone.com/users/Benadryl-484>Benadryl-484</a>
<a href=http://videocodezone.com/users/Clarinex-453>Clarinex-453</a>
<a href=http://videocodezone.com/users/Claritin-450>Claritin-450</a>
<a href=http://videocodezone.com/users/Decadron-788>Decadron-788</a>
<a href=http://videocodezone.com/users/Deltasone-543>Deltasone-543</a>
<a href=http://videocodezone.com/users/Entocort-512>Entocort-512</a>
<a href=http://videocodezone.com/users/FML-436>FML-436</a>
<a href=http://videocodezone.com/users/Forte-472>Forte-472</a>
<a href=http://videocodezone.com/users/Flonase-533>Flonase-533</a>
<a href=http://videocodezone.com/users/Flovent-463>Flovent-463</a>
<a href=http://videocodezone.com/users/Medrol-446>Medrol-446</a>
<a href=http://videocodezone.com/users/Periactin-505>Periactin-505</a>
<a href=http://videocodezone.com/users/Phenergan-497>Phenergan-497</a>
<a href=http://videocodezone.com/users/Prednisolone-530>Prednisolone-530</a>
<a href=http://videocodezone.com/users/Prednisone-852>Prednisone-852</a>
<a href=http://videocodezone.com/users/Proventil-458>Proventil-458</a>
<a href=http://videocodezone.com/users/Pulmicort-1253>Pulmicort-1253</a>
<a href=http://videocodezone.com/users/Quibron-T-535>Quibron-T-535</a>
<a href=http://videocodezone.com/users/Rhinocort-1253>Rhinocort-1253</a>
<a href=http://videocodezone.com/users/Serevent-432>Serevent-432</a>
<a href=http://videocodezone.com/users/Singulair-610>Singulair-610</a>
<a href=http://videocodezone.com/users/Synaral-436>Synaral-436</a>
<a href=http://videocodezone.com/users/Ventolin-481>Ventolin-481</a>
<a href=http://videocodezone.com/users/Zaditor-1268>Zaditor-1268</a>
<a href=http://videocodezone.com/users/Zyrtec-962>Zyrtec-962</a>
<a href=http://videocodezone.com/users/5-HTP-884>5-HTP-884</a>
<a href=http://videocodezone.com/users/Abilify-1156>Abilify-1156</a>
<a href=http://videocodezone.com/users/Amitriptyline-495>Amitriptyline-495</a>
<a href=http://videocodezone.com/users/Anafranil-786>Anafranil-786</a>
<a href=http://videocodezone.com/users/Ashwagandha-499>Ashwagandha-499</a>
<a href=http://videocodezone.com/users/Atarax-482>Atarax-482</a>
<a href=http://videocodezone.com/users/Bupropion-1043>Bupropion-1043</a>
<a href=http://videocodezone.com/users/Buspar-531>Buspar-531</a>
<a href=http://videocodezone.com/users/Celexa-520>Celexa-520</a>
<a href=http://videocodezone.com/users/Citalopram-535>Citalopram-535</a>
<a href=http://videocodezone.com/users/Clozaril-446>Clozaril-446</a>
<a href=http://videocodezone.com/users/Compazine-1225>Compazine-1225</a>
<a href=http://videocodezone.com/users/Cymbalta-1317>Cymbalta-1317</a>
<a href=http://videocodezone.com/users/Desyrel-522>Desyrel-522</a>
<a href=http://videocodezone.com/users/Effexor-528>Effexor-528</a>
<a href=http://videocodezone.com/users/Elavil-1047>Elavil-1047</a>
<a href=http://videocodezone.com/users/Emsam-542>Emsam-542</a>
<a href=http://videocodezone.com/users/Endep-1303>Endep-1303</a>
<a href=http://videocodezone.com/users/Fluoxetine-1028>Fluoxetine-1028</a>
<a href=http://videocodezone.com/users/Geodon-535>Geodon-535</a>
<a href=http://videocodezone.com/users/Haldol-461>Haldol-461</a>
<a href=http://videocodezone.com/users/Keppra-976>Keppra-976</a>
<a href=http://videocodezone.com/users/Lexapro-477>Lexapro-477</a>
<a href=http://videocodezone.com/users/Lithium-Carbonate-834om>Lithium-Carbonate-834om</a>
<a href=http://videocodezone.com/users/Luvox-531>Luvox-531</a>
<a href=http://videocodezone.com/users/Pamelor-659>Pamelor-659</a>
<a href=http://videocodezone.com/users/Paroxetine-442>Paroxetine-442</a>
<a href=http://videocodezone.com/users/Paxil-485>Paxil-485</a>
<a href=http://videocodezone.com/users/Prozac-477>Prozac-477</a>
<a href=http://videocodezone.com/users/Remeron-457>Remeron-457</a>
<a href=http://videocodezone.com/users/Risperdal-531>Risperdal-531</a>
<a href=http://videocodezone.com/users/Sarafem-490>Sarafem-490</a>
<a href=http://videocodezone.com/users/Seroquel-440>Seroquel-440</a>
<a href=http://videocodezone.com/users/Sinequan-490>Sinequan-490</a>
<a href=http://videocodezone.com/users/Stress-Gum-477>Stress-Gum-477</a>
<a href=http://videocodezone.com/users/Tofranil-497>Tofranil-497</a>
<a href=http://videocodezone.com/users/Trazodone-526>Trazodone-526</a>
<a href=http://videocodezone.com/users/Vitamin-B-1-509>Vitamin-B-1-509</a>
<a href=http://videocodezone.com/users/Wellbutrin-SR-998>Wellbutrin-SR-998</a>
<a href=http://videocodezone.com/users/Zoloft-437>Zoloft-437</a>
<a href=http://videocodezone.com/users/Zyban-1258>Zyban-1258</a>
<a href=http://videocodezone.com/users/Zyprexa-579>Zyprexa-579</a>
<a href=http://videocodezone.com/users/ActoPlus-Met-704>ActoPlus-Met-704</a>
<a href=http://videocodezone.com/users/Actos-535>Actos-535</a>
<a href=http://videocodezone.com/users/Amaryl-508>Amaryl-508</a>
<a href=http://videocodezone.com/users/Avandamet-885>Avandamet-885</a>
<a href=http://videocodezone.com/users/Avandia-453>Avandia-453</a>
<a href=http://videocodezone.com/users/Benfotiamine-504>Benfotiamine-504</a>
<a href=http://videocodezone.com/users/Diabecon-662>Diabecon-662</a>
<a href=http://videocodezone.com/users/Duetact-517>Duetact-517</a>
<a href=http://videocodezone.com/users/Glucophage-517>Glucophage-517</a>
<a href=http://videocodezone.com/users/Glucotrol-XL-434>Glucotrol-XL-434</a>
<a href=http://videocodezone.com/users/Glycemil-568>Glycemil-568</a>
<a href=http://videocodezone.com/users/Glyset-483>Glyset-483</a>
<a href=http://videocodezone.com/users/Januvia-512>Januvia-512</a>
<a href=http://videocodezone.com/users/Karela-519>Karela-519</a>
<a href=http://videocodezone.com/users/Prandin-464>Prandin-464</a>
<a href=http://videocodezone.com/users/Precose-897>Precose-897</a>
<a href=http://videocodezone.com/users/Starlix-506>Starlix-506</a>
<a href=http://videocodezone.com/users/Torsemide-452>Torsemide-452</a>
<a href=http://videocodezone.com/users/Vein-734>Vein-734</a>
<a href=http://videocodezone.com/users/Support-986>Support-986</a>
<a href=http://videocodezone.com/users/D-795>D-795</a>
<a href=http://videocodezone.com/users/Femcare-484>Femcare-484</a>
<a href=http://videocodezone.com/users/Grifulvin-V-638>Grifulvin-V-638</a>
<a href=http://videocodezone.com/users/Gyne-Lotrimin-535>Gyne-Lotrimin-535</a>
<a href=http://videocodezone.com/users/Lamisil-555>Lamisil-555</a>
<a href=http://videocodezone.com/users/Lotrisone-504>Lotrisone-504</a>
<a href=http://videocodezone.com/users/Mentax-966>Mentax-966</a>
<a href=http://videocodezone.com/users/Mycelex-G-543>Mycelex-G-543</a>
<a href=http://videocodezone.com/users/Nizoral-479>Nizoral-479</a>
<a href=http://videocodezone.com/users/Acyclovir-799>Acyclovir-799</a>
<a href=http://videocodezone.com/users/Bactroban-1178>Bactroban-1178</a>
<a href=http://videocodezone.com/users/Famvir-471>Famvir-471</a>
<a href=http://videocodezone.com/users/Neurontin-940>Neurontin-940</a>
<a href=http://videocodezone.com/users/Valtrex-488>Valtrex-488</a>
<a href=http://videocodezone.com/users/Zovirax-505>Zovirax-505</a>
<a href=http://videocodezone.com/users/Amoxil-528>Amoxil-528</a>
<a href=http://videocodezone.com/users/Ampicillin-1123>Ampicillin-1123</a>
<a href=http://videocodezone.com/users/Augmentin-450>Augmentin-450</a>
<a href=http://videocodezone.com/users/Bactrim-437>Bactrim-437</a>
<a href=http://videocodezone.com/users/Biaxin-656>Biaxin-656</a>
<a href=http://videocodezone.com/users/Cefadroxil-487>Cefadroxil-487</a>
<a href=http://videocodezone.com/users/Cefixime-639>Cefixime-639</a>
<a href=http://videocodezone.com/users/Ceftin-449>Ceftin-449</a>
<a href=http://videocodezone.com/use
-- DBManager.php
<?php
//esta clase nos permitira conectarnos a la base de datos
class DBManager{
var $conect;
//Método constructor
function DBManager(){
}
//Método que se encargará de la verificar y realizar
//la conexión
function conectar() {
if(!($con=@mysql_connect("localhost","root",""))){
echo"Error al conectar a la base de datos";
exit();
}
if (!@mysql_select_db("ajax",$con)) {
echo "Error al seleccionar la base de datos";
exit();
}
$this->conect=$con;
return true;
}
}
?>
----- index.html ----
<html>
<head>
<title>Consulta Registro con AJAX</title>
<!-- referenciamos al archivo ajax.js donde se encuentra nuestra funcion objetoAjax-->
<script language="JavaScript" type="text/javascript" src="ajax.js"></script>
</head>
<body>
<!-- En "onsubmit" escribimos la función 'MostrarConsulta' que creamos en javascript, con su parametro que es el archivo que vamos a mostrar, en este caso 'consulta.php'-->
<form name="consulta" action="" onSubmit="MostrarConsulta('consulta.php?ope=0'); return false">
<label>
<input type="submit" value="Consultar" />
</label>
</form>
<div id="resultado"></div>
</body>
</html>
------- ajax.js ----------
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function MostrarConsulta(datos){
divResultado = document.getElementById('resultado');
divResultado.innerHTML= '<img src="anim.gif">';
ajax=objetoAjax();
ajax.open("GET", datos);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
divResultado.innerHTML = ajax.responseText
}
}
ajax.send(null)
}
function eliminarDato(idempleado){
//donde se mostrará el resultado de la eliminacion
divResultado = document.getElementById('resultado');
//usaremos un cuadro de confirmacion
var eliminar = confirm("De verdad desea eliminar este dato?")
if ( eliminar ) {
//instanciamos el objetoAjax
ajax=objetoAjax();
//uso del medotod GET
//indicamos el archivo que realizará el proceso de eliminación
//junto con un valor que representa el id del empleado
ajax.open("GET", "consulta.php?ope=1&idempleado="+idempleado);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar resultados en esta capa
divResultado.innerHTML = ajax.responseText
}
}
//como hacemos uso del metodo GET
//colocamos null
ajax.send(null)
}
}
------ cEmpleado.php -------
<?php
include_once("DBManager.php");
//implementamos la clase empleado
class cEmpleado{
//constructor
function cEmpleado(){
}
// consulta los empledos de la BD
function consultar(){
//creamos el objeto $con a partir de la clase DBManager
$con = new DBManager;
//usamos el metodo conectar para realizar la conexion
if($con->conectar()==true){
$query = "select * from empleados order by nombres";
$result = @mysql_query($query);
if (!$result)
return false;
else
return $result;
}
}
function eliminar($idemp)
{
$con = new DBManager;
if($con->conectar()==true)
{
//echo"DELETE FROM empleados WHERE idempleado=$idemp";
$sql="DELETE FROM empleados WHERE idempleado='$idemp'";
$result = @mysql_query($sql);
if (!$result)
return false;
else
return $result;
}
//include('consulta.php');
}
}
?>
---------- consulta.php -------------
<?php
//include_once("cEmpleado.php");
include("cEmpleado.php");
function consulta_simple($objempleados)
{
$consulta= $objempleados->consultar();
//muestra los datos consultados
echo "</p>Nombres - Departamento - Sueldo</p> n";
while($row = mysql_fetch_array($consulta)){
echo "<p><a style=\"text-decoration:underline;cursor:pointer;\" onclick=\"eliminarDato('".$row['idempleado']."')\">".$row['idempleado']."</a> - ".$row['nombres']." - ".$row['departamento']." - ".$row['sueldo']."</p> n";
}
}
//++++++++++++++++++++++++ MAIN ++++++++++++++++++++++++++++++
//Sleep deja inactivo el script por n segundos
//n es un parametro, en el ejemplo 1 segundo
//esto para poder apreciar el gif animado
sleep(1);
//creamos el objeto $objempleados de la clase cEmpleado
$objempleados=new cEmpleado;
switch($ope)
{
case 0://++++consulta simple a base de datos
consulta_simple($objempleados);
break;
case 1://+++++ Eliminar dato +++++++
$idemp=$_GET['idempleado'];
$consulta=$objempleados->eliminar($idemp);
consulta_simple($objempleados);
break;
}
?>
---- la base de datos es la misma ----
eso es todo, saludos.
http://rapidshare.com/files/127799411/ULTIMO.rar
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\consulta.php on line 24 alguien podria ayudarme urgente gracias y me sale el mismo error con actualizacion, eliminacion
i'm adding in RSS Reader
Dejar un comentario