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&oacute;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 Comentarios formato RSS

  1. avatar Andersson 2009-12-29 09:28:08 33 oye juvit... no entiendo a ke te refieres con lo de DBManager...ya ke al ejecutar me sale lo siguiente:

    Fatal error: Class 'DBManager' not found in C:\AppServ\www\empleados2\cEmpleado.php on line 19

    espero me ayudes... gracias amigo
    cualkier cosa mi correo es: ander666._@hotmail.com
  2. avatar faso 2009-10-17 11:13:39 32 Disculpa tu ejemplo me funciono de maravailla pero cuando intento adecuarlo a una tabla donde el idempleado es un idusuario q trabaja con varchar no trabaja que puedoo hacer es error de conversion de datos o como son llaves primarias no me deja eliminar???
  3. avatar nidcker 2009-09-24 11:45:15 31 Hola, a ver si me podeis ayudar en esto.

    Quiero una simple pagina php en la que de entrada se muestre unos datos mysql. Al pulsar el boton "modificar" utilice AJAX para mostrar en la misma pagina un formulario con esos mismos datos en campos editables. Y al pulsar guardar utilice AJAX para almacenar los datos y volverlos a mostrar sin campos editables.

    Puedo mostrar los datos, puedo pulsar "modificar" y se muestran en campos editables. Problema: cuando envio el formulario tengo que hacer referencia a un archivo php para almacenarlos en la bbdd, y luego ya no vuelve a la pagina inicial.

    Mis archivos:

    -index.php: hace una llamada a showdevice.js y muestra los datos recibidos en un div. Tiene el boton modificar que hace una llamada a modifydevice.js que muestra los datos en el div en campos modificables.
    -showdevice.js: aqui esta la creacion del objeto xmlhttpobject y la llamada a showdevice.php.
    -showdevice.php: realiza la consulta a la bbdd para devolver los datos con ajax a index.php.
    -modifydevice.js: creacion del objeto xmlhttpobject y la llamada a modifydevice.php.
    -modifydevice.php: realiza la consulta a la bbdd para devolver los datos en forma de FORMULARIO a index.php. Este formulario incluye el boton que llama a insertdevice.php.
    -insertdevice.php: se encarga de almacenar los datos en la bbdd. PERO DE AQUI NO PUEDO VOLVER....!!!!

    Muestro el contenido a continuacion:

    index.php---------------------------------
    html xmlns="http://www.w3.org/1999/xhtml">
    <head>

    <script type="text/javascript" src="showDevice.js"></script>
    <script type="text/javascript" src="modifyDevice.js"></script>

    </head>

    <body>

    <script>showDevice(1)</script>
    <div id="infoDevice"><b>device info will be listed here.</b></div>


    <div class="row-text-one">
    <p>Para modificar los datos del dispositivo haga clic en Modificar.</p>
    <input type="button" onclick="modifyDevice('1')" value="Modificar">
    </div>


    </body>
    </html>

    showDevice.js-------------------------------
    var xmlhttp;

    function showDevice(str)
    {
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
    {
    alert ("Browser does not support HTTP Request");
    return;
    }
    var url="showDevice.php";
    url=url+"?q="+str;
    url=url+"&sid="+Math.random();
    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    }

    function stateChanged()
    {
    if (xmlhttp.readyState==4)
    {
    document.getElementById("infoDevice").innerHTML=xmlhttp.responseText;
    }
    }

    function GetXmlHttpObject()
    {
    if (window.XMLHttpRequest)
    {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    return new XMLHttpRequest();
    }
    if (window.ActiveXObject)
    {
    // code for IE6, IE5
    return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
    }

    showDevice.php----------------------------------
    <?php include 'db1config.php'?>
    <?php include 'connect.php'?>

    <?php

    $q=$_GET["q"];

    $sql="SELECT * FROM infodevice WHERE id = '".$q."'";

    $result = mysql_query($sql);
    $row = mysql_fetch_array($result);
    echo "<table width='350' border='0'>
    <tr>
    <td><b>Nombre del dispositivo:</b></td><td> ".$row['nombre']."</td>
    </tr>
    <tr>
    <td><b>Nombre del propietario:</b></td><td> ".$row['propietario']."</td>
    </tr>
    <tr>
    <td><b>serie:</b></td><td> ".$row['serie']."</td>
    </tr>
    <tr>
    <td><b>version:</b></td><td> ".$row['version']."</td>
    </tr>
    <tr>
    <td><b>Telefono:</b></td><td> ".$row['telefono']."</td>
    </tr>
    </table>";

    mysql_close($connect);
    ?>

    modifyDevice.js-------------------------------
    //window.onload=modifyDevice(1);

    var xmlhttp;

    function modifyDevice(str)
    {
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
    {
    alert ("Browser does not support HTTP Request");
    return;
    }
    var url="modifyDevice.php";
    url=url+"?q="+str;
    url=url+"&sid="+Math.random();
    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    }

    function stateChanged()
    {
    if (xmlhttp.readyState==4)
    {
    document.getElementById("infoDevice").innerHTML=xmlhttp.responseText;
    }
    }

    function GetXmlHttpObject()
    {
    if (window.XMLHttpRequest)
    {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    return new XMLHttpRequest();
    }
    if (window.ActiveXObject)
    {
    // code for IE6, IE5
    return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
    }


    modifyDevice.php----------------------------
    <?php include 'db1config.php'?>
    <?php include 'connect.php'?>

    <?php
    $q=$_GET["q"];

    $sql="SELECT * FROM infodevice WHERE id = '".$q."'";

    $result = mysql_query($sql);
    $row = mysql_fetch_array($result);
    echo "<form action='insertDevice.php' method='post'>
    <table width='350' border='0'>
    <tr>
    <td><b>Nombre del dispositivo:</b></td><td><input type='text' name='nombre' value='".$row['nombre']."' /></td>
    </tr>
    <tr>
    <td><b>Nombre del propietario:</b></td><td><input type='text' name='propietario' value='".$row['propietario']."' /></td>
    </tr>
    <tr>
    <td><b>Serie:</b></td><td><input type='text' name='serie' value='".$row['serie']."' /></td>
    </tr>
    <tr>
    <td><b>Version:</b></td><td><input type='text' name='version' value='".$row['version']."' /></td>
    </tr>
    <tr>
    <td><b>Telefono:</b></td><td><input type='text' name='telefono' value='".$row['telefono']."' /></td>
    </tr>
    </table>
    <input type='submit' value='enviar' />
    </form>
    ";


    mysql_close($connect);
    ?>


    insertDevice.php--------------------------------
    <?php
    $con = mysql_connect("localhost","vanios","vanios");
    if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("vanios", $con);

    $sql="UPDATE infodevice
    SET nombre='$_POST[nombre]',
    propietario='$_POST[propietario]',
    serie='$_POST[serie]',
    version='$_POST[version]',
    telefono='$_POST[telefono]'
    WHERE id=1";

    if (!mysql_query($sql,$con))
    {
    die('Error: ' . mysql_error());
    }
    echo "data modified";

    mysql_close($con);
    ?>

    connect.php------------------------------
    <?php
    $connect = mysql_connect($host,$username,$password) or die("Error connecting to Database! " . mysql_error());
    mysql_select_db($database , $connect) or die("Cannot select database! " . mysql_error());
    ?>

    db1config.php-----------------------------
    <?php
    //connection data
    $host = 'localhost';
    $username = 'user';
    $password = 'password';
    $database = 'data';
    ?>
    mysql----------------------------------------
    CREATE TABLE IF NOT EXISTS `infodevice` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `nombre` varchar(30) NOT NULL,
    `propietario` varchar(30) NOT NULL,
    `serie` varchar(5) NOT NULL,
    `version` varchar(20) NOT NULL,
    `telefono` varchar(18) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

    --
    -- Dumping data for table `infodevice`
    --

    INSERT INTO `infodevice` (`id`, `nombre`, `propietario`, `serie`, `version`, `telefono`) VALUES
    (1, 'qwrqwer', 'aa', '23', '1.1', '9111111111');

    ---------------------------------------------
    THANKS!!!!
  4. avatar Venus 2009-07-21 06:01:35 30 Hola, he probado tu codigo y funciona perfecto, pero en mi BD los identificadores de usuarios se componen de letras y numeros, y no se por que no me funciona, en cambio si el id solo contiene numeros si va O_o ¿que tendria que cambiar?
  5. avatar GreadsDieda 2008-11-19 14:56:46 29 <a href=http://videocodezone.com/users/Aciphex-507>Aciphex-507</a>
    <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
  6. avatar juvit 2008-10-20 17:24:46 28 falto este fichero
    -- 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;
    }
    }
    ?>
  7. avatar juvit 2008-10-20 17:14:11 27 aqui un ejemplito de listado y borrado de registros
    ----- 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 ----
  8. avatar Diego 2008-10-02 17:20:27 26 Muchas gracias muy buen aporte!
  9. avatar Confuso 2008-09-23 09:47:01 25 Hola, es seguró eliminar, modificar o guardar cosas en la base de datos mediante ajax???? y si no es seguro ¿cómo se puede hacer seguro?...
    eso es todo, saludos.
  10. avatar Ricardo 2008-07-07 01:02:42 24 Hola amigos espero que puedan ayudarme a ponerme en al ruta denuevo, estoy tratando de insertarme en este mundo de ajax y encontre este tutorial excelentemente bueno, todo iba bien hasta que cambie algo y aun no puedo darme cuenta cual fue ese algo espero que me puedan dar indicaciones para volver al buen camino no puedo eliminar registros y ahora no puedo insertarlos espero que me ayuden
    http://rapidshare.com/files/127799411/ULTIMO.rar

Dejar un comentario